aboutsummaryrefslogtreecommitdiff
path: root/home/beets
diff options
context:
space:
mode:
Diffstat (limited to 'home/beets')
-rw-r--r--home/beets/default.nix74
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";
+ };
};
};
};