summary refs log tree commit diff
path: root/pkgs/tools/audio/beets
diff options
context:
space:
mode:
authorBernardo Meurer <meurerbernardo@gmail.com>2019-12-06 22:08:54 -0800
committerBernardo Meurer <meurerbernardo@gmail.com>2019-12-14 21:52:21 -0800
commit171ceb38ff4a3abe5dc8938c971777fc09fad762 (patch)
tree2f5b29cccae3ab45d66191c1b60eb1f142ba4cc9 /pkgs/tools/audio/beets
parentbe13df6c76cb2480640d1622f691d6298852a43a (diff)
downloadnixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar.gz
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar.bz2
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar.lz
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar.xz
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.tar.zst
nixpkgs-171ceb38ff4a3abe5dc8938c971777fc09fad762.zip
beets.externalPlugins.check: init at 0.12.0
Diffstat (limited to 'pkgs/tools/audio/beets')
-rw-r--r--pkgs/tools/audio/beets/beet-check-tests.patch17
-rw-r--r--pkgs/tools/audio/beets/check-plugin.nix35
-rw-r--r--pkgs/tools/audio/beets/default.nix8
3 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/tools/audio/beets/beet-check-tests.patch b/pkgs/tools/audio/beets/beet-check-tests.patch
new file mode 100644
index 00000000000..2de97b86c8b
--- /dev/null
+++ b/pkgs/tools/audio/beets/beet-check-tests.patch
@@ -0,0 +1,17 @@
+diff --git a/test/cli_test.py b/test/cli_test.py
+index 26df140..2eb913c 100644
+--- a/test/cli_test.py
++++ b/test/cli_test.py
+@@ -372,12 +372,6 @@ class ToolListTest(TestHelper, TestCase):
+         self.assertIn('flac', stdout.getvalue())
+         self.assertIn('oggz-validate', stdout.getvalue())
+ 
+-    def test_found_mp3val(self):
+-        shutil.copy('/bin/echo', os.path.join(self.temp_dir, 'mp3val'))
+-        with captureStdout() as stdout:
+-            beets.ui._raw_main(['check', '--list-tools'])
+-        self.assertRegexpMatches(stdout.getvalue(), r'mp3val *found')
+-
+     def test_oggz_validate_not_found(self):
+         with captureStdout() as stdout:
+             beets.ui._raw_main(['check', '--list-tools'])
diff --git a/pkgs/tools/audio/beets/check-plugin.nix b/pkgs/tools/audio/beets/check-plugin.nix
new file mode 100644
index 00000000000..49ee97ead06
--- /dev/null
+++ b/pkgs/tools/audio/beets/check-plugin.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, beets, pythonPackages, flac, liboggz, mp3val }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "beets-check";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    repo = "beets-check";
+    owner = "geigerzaehler";
+    rev = "v${version}";
+    sha256 = "0b2ijjf0gycs6b40sm33ida3sjygjiv4spb5mba52vysc7iwmnjn";
+  };
+
+  nativeBuildInputs = [ beets ];
+  checkInputs = [ pythonPackages.nose flac liboggz mp3val ];
+  propagatedBuildInputs = [ flac liboggz mp3val ];
+
+  # patch out broken tests
+  patches = [ ./beet-check-tests.patch ];
+
+  # patch out futures dependency, it is only needed for Python2 which we don't
+  # support.
+  prePatch = ''
+    sed -i "/futures/d" setup.py
+  '';
+
+  checkPhase = "nosetests";
+
+  meta = with stdenv.lib; {
+    description = "Beets plugin to Verify and store checksums in your library";
+    homepage = https://github.com/geigerzaehler/beets-check;
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 9509eccabdc..b4dfa71ca96 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -29,6 +29,7 @@
 
 # External plugins
 , enableAlternatives   ? false
+, enableCheck          ? false, liboggz ? null
 , enableCopyArtifacts  ? false
 
 , bashInteractive, bash-completion
@@ -37,6 +38,7 @@
 assert enableAbsubmit    -> essentia-extractor            != null;
 assert enableAcoustid    -> pythonPackages.pyacoustid     != null;
 assert enableBadfiles    -> flac != null && mp3val != null;
+assert enableCheck       -> flac != null && mp3val != null && liboggz != null;
 assert enableConvert     -> ffmpeg != null;
 assert enableDiscogs     -> pythonPackages.discogs_client != null;
 assert enableFetchart    -> pythonPackages.responses      != null;
@@ -106,6 +108,7 @@ let
 
   plugins = {
     alternatives = callPackage ./alternatives-plugin.nix pluginArgs;
+    check = callPackage ./check-plugin.nix pluginArgs;
     copyartifacts = callPackage ./copyartifacts-plugin.nix pluginArgs;
   };
 
@@ -142,6 +145,7 @@ in pythonPackages.buildPythonApplication rec {
               || enableSubsonicupdate
               || enableAcousticbrainz)
                                     pythonPackages.requests
+    ++ optional enableCheck         plugins.check
     ++ optional enableConvert       ffmpeg
     ++ optional enableDiscogs       pythonPackages.discogs_client
     ++ optional enableGmusic        pythonPackages.gmusicapi
@@ -246,6 +250,10 @@ in pythonPackages.buildPythonApplication rec {
 
   makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ];
 
+  passthru = {
+    externalPlugins = plugins;
+  };
+
   meta = {
     description = "Music tagger and library organizer";
     homepage = http://beets.io;