beets: remove ``? null``; remove ``with lib``

wip/yesman
Sandro Jäckel 3 years ago
parent 901206a04e
commit 3353bf7a16
No known key found for this signature in database
GPG Key ID: 3AF5A43A3EECC2E5
  1. 81
      pkgs/tools/audio/beets/default.nix

@ -1,24 +1,23 @@
{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
, pythonPackages, imagemagick, gobject-introspection, gst_all_1
, runtimeShell
, unstableGitUpdater
, runtimeShell, unstableGitUpdater
# external plugins package set
, beetsExternalPlugins
, enableAbsubmit ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor ? null
, enableAbsubmit ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor
, enableAcousticbrainz ? true
, enableAcoustid ? true
, enableBadfiles ? true, flac ? null, mp3val ? null
, enableBadfiles ? true, flac, mp3val
, enableBeatport ? true
, enableBpsync ? true
, enableConvert ? true, ffmpeg ? null
, enableConvert ? true, ffmpeg
, enableDeezer ? true
, enableDiscogs ? true
, enableEmbyupdate ? true
, enableFetchart ? true
, enableGmusic ? true
, enableKeyfinder ? true, keyfinder-cli ? null
, enableKeyfinder ? true, keyfinder-cli
, enableKodiupdate ? true
, enableLastfm ? true
, enableLoadext ? true
@ -33,32 +32,14 @@
# External plugins
, enableAlternatives ? false
, enableCheck ? false, liboggz ? null
, enableCheck ? false, liboggz
, enableCopyArtifacts ? false
, enableExtraFiles ? false
, bashInteractive, bash-completion
}:
assert enableAbsubmit -> essentia-extractor != null;
assert enableAcoustid -> pythonPackages.pyacoustid != null;
assert enableBadfiles -> flac != null && mp3val != null;
assert enableBeatport -> pythonPackages.requests_oauthlib != null;
assert enableBpsync -> enableBeatport;
assert enableCheck -> flac != null && mp3val != null && liboggz != null;
assert enableConvert -> ffmpeg != null;
assert enableDiscogs -> pythonPackages.discogs_client != null;
assert enableFetchart -> pythonPackages.responses != null;
assert enableGmusic -> pythonPackages.gmusicapi != null;
assert enableKeyfinder -> keyfinder-cli != null;
assert enableLastfm -> pythonPackages.pylast != null;
assert enableMpd -> pythonPackages.mpd2 != null;
assert enableReplaygain -> ffmpeg != null;
assert enableSonosUpdate -> pythonPackages.soco != null;
assert enableThumbnails -> pythonPackages.pyxdg != null;
assert enableWeb -> pythonPackages.flask != null;
with lib;
let
optionalPlugins = {
@ -99,20 +80,20 @@ let
"types" "unimported" "zero"
];
enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins);
enabledOptionalPlugins = lib.attrNames (lib.filterAttrs (_: lib.id) optionalPlugins);
allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins;
allPlugins = pluginsWithoutDeps ++ lib.attrNames optionalPlugins;
allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins;
testShell = "${bashInteractive}/bin/bash --norc";
completion = "${bash-completion}/share/bash-completion/bash_completion";
# This is a stripped down beets for testing of the external plugins.
externalTestArgs.beets = (beets.override {
externalTestArgs.beets = (lib.beets.override {
enableAlternatives = false;
enableCopyArtifacts = false;
enableExtraFiles = false;
}).overrideAttrs (const {
}).overrideAttrs (lib.const {
doInstallCheck = false;
});
@ -147,10 +128,10 @@ in pythonPackages.buildPythonApplication rec {
pythonPackages.confuse
pythonPackages.mediafile
gobject-introspection
] ++ optional enableAbsubmit essentia-extractor
++ optional enableAcoustid pythonPackages.pyacoustid
++ optional enableBeatport pythonPackages.requests_oauthlib
++ optional (enableFetchart
] ++ lib.optional enableAbsubmit essentia-extractor
++ lib.optional enableAcoustid pythonPackages.pyacoustid
++ lib.optional enableBeatport pythonPackages.requests_oauthlib
++ lib.optional (enableFetchart
|| enableDeezer
|| enableEmbyupdate
|| enableKodiupdate
@ -160,19 +141,19 @@ in pythonPackages.buildPythonApplication rec {
|| enableSubsonicupdate
|| enableAcousticbrainz)
pythonPackages.requests
++ optional enableCheck beetsExternalPlugins.check
++ optional enableConvert ffmpeg
++ optional enableDiscogs pythonPackages.discogs_client
++ optional enableGmusic pythonPackages.gmusicapi
++ optional enableKeyfinder keyfinder-cli
++ optional enableLastfm pythonPackages.pylast
++ optional enableMpd pythonPackages.mpd2
++ optional enableSonosUpdate pythonPackages.soco
++ optional enableThumbnails pythonPackages.pyxdg
++ optional enableWeb pythonPackages.flask
++ optional enableAlternatives beetsExternalPlugins.alternatives
++ optional enableCopyArtifacts beetsExternalPlugins.copyartifacts
++ optional enableExtraFiles beetsExternalPlugins.extrafiles
++ lib.optional enableCheck beetsExternalPlugins.check
++ lib.optional enableConvert ffmpeg
++ lib.optional enableDiscogs pythonPackages.discogs_client
++ lib.optional enableGmusic pythonPackages.gmusicapi
++ lib.optional enableKeyfinder keyfinder-cli
++ lib.optional enableLastfm pythonPackages.pylast
++ lib.optional enableMpd pythonPackages.mpd2
++ lib.optional enableSonosUpdate pythonPackages.soco
++ lib.optional enableThumbnails pythonPackages.pyxdg
++ lib.optional enableWeb pythonPackages.flask
++ lib.optional enableAlternatives beetsExternalPlugins.alternatives
++ lib.optional enableCopyArtifacts beetsExternalPlugins.copyartifacts
++ lib.optional enableExtraFiles beetsExternalPlugins.extrafiles
;
buildInputs = [
@ -209,12 +190,12 @@ in pythonPackages.buildPythonApplication rec {
# bs1770gain, and set the absolute path there, to avoid impurities.
++ lib.optional enableReplaygain (substituteAll {
src = ./replaygain-default-ffmpeg.patch;
ffmpeg = getBin ffmpeg;
ffmpeg = lib.getBin ffmpeg;
})
# Put absolute Nix paths in place
++ lib.optional enableConvert (substituteAll {
src = ./convert-plugin-ffmpeg-path.patch;
ffmpeg = getBin ffmpeg;
ffmpeg = lib.getBin ffmpeg;
})
++ lib.optional enableBadfiles (substituteAll {
src = ./badfiles-plugin-nix-paths.patch;
@ -269,7 +250,7 @@ in pythonPackages.buildPythonApplication rec {
EDITOR="${writeScript "beetconfig.sh" ''
#!${runtimeShell}
cat > "$1" <<CFG
plugins: ${concatStringsSep " " allEnabledPlugins}
plugins: ${lib.concatStringsSep " " allEnabledPlugins}
CFG
''}" HOME="$tmphome" "$out/bin/beet" config -e
EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
@ -285,7 +266,7 @@ in pythonPackages.buildPythonApplication rec {
updateScript = unstableGitUpdater { url = "https://github.com/beetbox/beets"; };
};
meta = {
meta = with lib; {
description = "Music tagger and library organizer";
homepage = "http://beets.io";
license = licenses.mit;

Loading…
Cancel
Save