diff options
Diffstat (limited to '')
-rw-r--r-- | home/beets/default.nix | 74 |
1 files changed, 45 insertions, 29 deletions
diff --git a/home/beets/default.nix b/home/beets/default.nix index c88fd85..0d7a3b9 100644 --- a/home/beets/default.nix +++ b/home/beets/default.nix @@ -1,5 +1,17 @@ { config, lib, pkgs, ... }: -let cfg = config.my.home.beets; +let + cfg = config.my.home.beets; + bc-to-beet = pkgs.writeShellScriptBin "bc-to-beet" '' + ALBUM_PATH="''${1}" + ALBUM_NAME=$(basename "''${ALBUM_PATH}") + + mkdir -p ~/import + rm -rf ~/import/tmp-bc + unzip -d ~/import/tmp-bc ~/import/album.zip + beet import ~/import/tmp-bc + rm -rf ~/import/tmp-bc + rm -rf ~/import/album.zip + ''; in { options.my.home.beets = with lib; { @@ -11,36 +23,40 @@ in }; }; - config.programs.beets = lib.mkIf cfg.enable { - enable = true; - settings = { - directory = cfg.musicDirectory; - plugins = - "fromfilename discogs duplicates fetchart embedart badfiles lastgenre scrub"; - paths = { - default = "$albumartist/$album%aunique{}/$track $title"; - singleton = "Singles/$artist/$title"; - comp = "Compilations/$album%aunique{}/$track - $title"; - "albumtype:soundtrack" = "Soundtracks/$album ($year)/$track $title"; - }; - import = { - copy = true; - move = true; - }; - va_name = "Various Artists"; - embedart = { ifempty = true; }; + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [ bc-to-beet ]; - lastgenre = { - auto = false; - canonical = true; - fallback = "unknown"; - force = true; - prefer_specific = true; - }; + programs.beets = { + enable = true; + settings = { + directory = cfg.musicDirectory; + plugins = + "fromfilename discogs duplicates fetchart embedart badfiles lastgenre scrub"; + paths = { + default = "$albumartist/$album%aunique{}/$track $title"; + singleton = "Singles/$artist/$title"; + comp = "Compilations/$album%aunique{}/$track - $title"; + "albumtype:soundtrack" = "Soundtracks/$album ($year)/$track $title"; + }; + import = { + copy = true; + move = true; + }; + va_name = "Various Artists"; + embedart = { ifempty = true; }; + + lastgenre = { + auto = false; + canonical = true; + fallback = "unknown"; + force = true; + prefer_specific = true; + }; - fetchart = { - cautious = true; - sources = "filesystem coverart itunes amazon lastfm wikipedia"; + fetchart = { + cautious = true; + sources = "filesystem coverart itunes amazon lastfm wikipedia"; + }; }; }; }; |