biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / audio / beets / default.nix
blob85244c0e0b897e25ac3bd27d5c0540985e1cc004
1 { lib
2 , callPackage
3 , fetchFromGitHub
4 , python3Packages
5 }:
6 /*
7 ** To customize the enabled beets plugins, use the pluginOverrides input to the
8 ** derivation.
9 ** Examples:
11 ** Disabling a builtin plugin:
12 ** beets.override { pluginOverrides = { beatport.enable = false; }; }
14 ** Enabling an external plugin:
15 ** beets.override { pluginOverrides = {
16 **   alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; };
17 ** }; }
19 lib.makeExtensible (self: {
20   beets = self.beets-stable;
22   beets-stable = callPackage ./common.nix rec {
23     inherit python3Packages;
24     # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals
25     # be removed when stable version updates
26     version = "2.0.0";
27     src = fetchFromGitHub {
28       owner = "beetbox";
29       repo = "beets";
30       rev = "v${version}";
31       hash = "sha256-6pmImyopy0zFBDYoqDyWcBv61FK1kGsZwW2+7fzAnq8=";
32     };
33     extraPatches = [
34       # Bash completion fix for Nix
35       ./patches/bash-completion-always-print.patch
36     ];
37   };
39   beets-minimal = self.beets.override { disableAllPlugins = true; };
41   beets-unstable = callPackage ./common.nix {
42     inherit python3Packages;
43     version = "2.0.0-unstable-2024-05-25";
44     src = fetchFromGitHub {
45       owner = "beetbox";
46       repo = "beets";
47       rev = "2130404217684f22f36de00663428602b3f96d84";
48       hash = "sha256-trqF6YVBcv+i5H4Ez3PKnRQ6mV2Ly/cw3UJC7pl19og=";
49     };
50     extraPatches = [
51       # Bash completion fix for Nix
52       ./patches/bash-completion-always-print.patch
53     ];
54   };
56   alternatives = callPackage ./plugins/alternatives.nix { beets = self.beets-minimal; };
57   copyartifacts = callPackage ./plugins/copyartifacts.nix { beets = self.beets-minimal; };
58   extrafiles = callPackage ./plugins/extrafiles.nix { beets = self.beets-minimal; };