From 171ceb38ff4a3abe5dc8938c971777fc09fad762 Mon Sep 17 00:00:00 2001 From: Bernardo Meurer Date: Fri, 6 Dec 2019 22:08:54 -0800 Subject: [PATCH] beets.externalPlugins.check: init at 0.12.0 --- pkgs/tools/audio/beets/beet-check-tests.patch | 17 +++++++++ pkgs/tools/audio/beets/check-plugin.nix | 35 +++++++++++++++++++ pkgs/tools/audio/beets/default.nix | 8 +++++ 3 files changed, 60 insertions(+) create mode 100644 pkgs/tools/audio/beets/beet-check-tests.patch create mode 100644 pkgs/tools/audio/beets/check-plugin.nix 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 000000000000..2de97b86c8b4 --- /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 000000000000..49ee97ead06a --- /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 9509eccabdc1..b4dfa71ca965 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;