nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5 nix-update-script,
6 withKeyring ? true,
7}:
8
9python3Packages.buildPythonApplication {
10 pname = "isrcsubmit";
11 version = "2.1.0-unstable-2023-08-10";
12 pyproject = true;
13
14 src = fetchFromGitHub {
15 owner = "JonnyJD";
16 repo = "musicbrainz-isrcsubmit";
17 rev = "8f4c3b9f9b8f983443d58fba381baaa3a74edad7";
18 hash = "sha256-6SJt0wtXC49Eh6g7DBy73MeCueF7CRuCvYC27es1qAM=";
19 };
20
21 postPatch = ''
22 # Change binary name to isrcsubmit so that `import isrcsubmit` in the wrapper doesn't fail
23 substituteInPlace setup.py --replace-fail "'isrcsubmit.py=isrcsubmit:main'," "'isrcsubmit=isrcsubmit:main',"
24 # Set default argument for main, which is set `if __name__ == '__main__'` upstream
25 substituteInPlace isrcsubmit.py --replace-fail "main(argv):" "main(argv=sys.argv):"
26 '';
27
28 build-system = with python3Packages; [
29 setuptools
30 ];
31
32 dependencies =
33 with python3Packages;
34 [
35 musicbrainzngs
36 discid
37 ]
38 ++ lib.optional withKeyring [
39 keyring
40 ];
41
42 pythonImportsCheck = [ "isrcsubmit" ];
43
44 passthru.updateScript = nix-update-script {
45 extraArgs = [ "--version=branch" ];
46 };
47
48 meta = {
49 description = "Script to submit ISRCs from disc to MusicBrainz";
50 license = lib.licenses.gpl3Plus;
51 homepage = "http://jonnyjd.github.io/musicbrainz-isrcsubmit/";
52 maintainers = [ ];
53 mainProgram = "isrcsubmit";
54 };
55}