diff --git a/dotfiles/sstent/justfile b/dotfiles/sstent/justfile index 1bf0e3a..425b958 100644 --- a/dotfiles/sstent/justfile +++ b/dotfiles/sstent/justfile @@ -25,8 +25,16 @@ sops-updatekeys: sops updatekeys secrets/*.yaml rebuild: + just rebuild_host + just rebuild_home + +rebuild_host: sudo nixos-rebuild switch --flake /home/sstent/vmimages/.#${HOSTNAME} +rebuild_home: + home-manager switch --flake /home/sstent/vmimages/. + systemctl --user restart sops-nix + nomad_run SERVICE: nomad run ~/projects/nomad/nomad_jobs/enabled/{{SERVICE}}.nomad nomad_purge SERVICE: diff --git a/flake.lock b/flake.lock index 59fe99e..697a926 100644 --- a/flake.lock +++ b/flake.lock @@ -110,16 +110,16 @@ ] }, "locked": { - "lastModified": 1695108154, - "narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", + "lastModified": 1702814678, + "narHash": "sha256-zDtO0jV2QLoddUJinLlTQrQqCUW3dPiIWOSYgg98T7E=", "owner": "nix-community", "repo": "home-manager", - "rev": "07682fff75d41f18327a871088d20af2710d4744", + "rev": "1488651d02c1a7a15e284210f0d380a62d8d8cef", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.05", + "ref": "release-23.11", "repo": "home-manager", "type": "github" } @@ -200,16 +200,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1696610053, - "narHash": "sha256-nMYt0iIt9OEdsP7XuNjwml+nweuHTWWx86f1t7Dp3FM=", + "lastModified": 1702914177, + "narHash": "sha256-jdl4G81clnCQIWomhzajrGaLldkzUHV5LfVVAWb4bB4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f49c3d6bb60a6317e4c5137d50299b5c93a8a64b", + "rev": "9de4582e66797e748798e5c61ce968e3b6519945", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-23.05", + "ref": "release-23.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 391666e..9e94135 100644 --- a/flake.nix +++ b/flake.nix @@ -3,14 +3,14 @@ inputs = { # Nixpkgs - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; + nixpkgs.url = "github:nixos/nixpkgs/release-23.11"; # You can access packages and modules from different nixpkgs revs # at the same time. Here's an working example: nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. # Home manager - home-manager.url = "github:nix-community/home-manager/release-23.05"; + home-manager.url = "github:nix-community/home-manager/release-23.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # TODO: Add any other flake you might need diff --git a/home-manager/users/sstent/default.nix b/home-manager/users/sstent/default.nix index c74a215..aa4fb6f 100644 --- a/home-manager/users/sstent/default.nix +++ b/home-manager/users/sstent/default.nix @@ -62,6 +62,7 @@ nixpkgs-fmt # deploy-rs gnumake + # beets-originquery ]; custom = { diff --git a/modules/home-manager/beets/default.nix b/modules/home-manager/beets/default.nix index a6b97d8..5a3ff64 100644 --- a/modules/home-manager/beets/default.nix +++ b/modules/home-manager/beets/default.nix @@ -18,6 +18,7 @@ in { config = mkIf cfg.enable { home.packages = [ pkgs.ffmpeg # for replaygain + ]; sops = { @@ -25,8 +26,10 @@ in { path = "${config.xdg.configHome}/beets/discogs_token.json"; }; }; + programs.beets = { enable = true; + package = (pkgs.beets.override { pluginOverrides = { originquery = {enable = true; propagatedBuildInputs = [ pkgs.beets-originquery ]; }; };}); settings = { album_fields = { artist_grouping = '' @@ -128,10 +131,26 @@ in { format_item = "$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title"; }; musicbrainz = { + extra_tags= ["year" "catalognum" "country" "media" "label"]; pass = "7ANCLPczDNFn6Sf65vdZ"; user = "shapechecker"; }; original_date = true; + originquery = { + origin_file = "origin.yaml"; + + tag_patterns = { + media = ''$.Media''; + year = ''$."Edition year"''; + label = ''$."Record label"''; + catalognum = ''$."Catalog number"''; + albumdisambig = ''$.Edition''; + }; + + use_origin_on_conflict = true; + }; + + paths = { "albumtype:soundtrack" = "Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title"; comp = "Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $title"; @@ -151,6 +170,8 @@ in { "mbcollection" "replaygain" "info" + "mbsync" + "originquery" ]; replaygain = { backend = "ffmpeg"; diff --git a/pkgs/beets-originquery/default.nix b/pkgs/beets-originquery/default.nix new file mode 100644 index 0000000..2fa530f --- /dev/null +++ b/pkgs/beets-originquery/default.nix @@ -0,0 +1,35 @@ +{ python3Packages +, fetchFromGitHub +, beets +, lib +}: + +with python3Packages; +buildPythonPackage rec { + pname = "beets-originquery"; + version = "unstable-2022-03-11"; + + src = fetchFromGitHub { + owner = "x1ppy"; + repo = "beets-originquery"; + rev = "c353e2b68804cb4dabca0f0f177cee1137888ca4"; + hash = "sha256-vNROKZgCoWtoou9B8hpJwl4Yf6TzQU0TbKJUd94v7vk="; + }; + + nativeBuildInputs = [ + beets + setuptools-scm + ]; + + propagatedBuildInputs = [ jsonpath_rw ]; + + # There's no test + doCheck = false; + + pythonImportsCheck = [ "beetsplug.originquery" ]; + + meta = { + description = "Plugin for beets that improves album matching"; + homepage = "https://github.com/x1ppy/beets-originquery"; + }; +} \ No newline at end of file diff --git a/pkgs/default.nix b/pkgs/default.nix index fd49ac3..8ba999a 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,4 +3,5 @@ {pkgs ? (import ../nixpkgs.nix) {}}: { # example = pkgs.callPackage ./example { }; npiperelay = pkgs.callPackage ./npiperelay {}; + beets-originquery = pkgs.callPackage ./beets-originquery {}; }