1{ lib
2, callPackage
3, fetchFromGitHub
4}:
5/*
6** To customize the enabled beets plugins, use the pluginOverrides input to the
7** derivation.
8** Examples:
9**
10** Disabling a builtin plugin:
11** beets.override { pluginOverrides = { beatport.enable = false; }; }
12**
13** Enabling an external plugin:
14** beets.override { pluginOverrides = {
15** alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; };
16** }; }
17*/
18lib.makeExtensible (self: {
19 beets = self.beets-stable;
20
21 beets-stable = callPackage ./common.nix rec {
22 version = "1.6.0";
23 src = fetchFromGitHub {
24 owner = "beetbox";
25 repo = "beets";
26 rev = "v${version}";
27 hash = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
28 };
29 };
30
31 beets-minimal = self.beets.override { disableAllPlugins = true; };
32
33 beets-unstable = callPackage ./common.nix {
34 version = "unstable-2022-08-27";
35 src = fetchFromGitHub {
36 owner = "beetbox";
37 repo = "beets";
38 rev = "50bd693057de472470ab5175fae0cdb5b75811c6";
39 hash = "sha256-91v1StaByG60ryhQqByBXu6sFCjk0qT0nsUPnocSEE4=";
40 };
41 pluginOverrides = {
42 # unstable has a new plugin, so we register it here.
43 limit = { builtin = true; };
44 };
45 };
46
47 alternatives = callPackage ./plugins/alternatives.nix { beets = self.beets-minimal; };
48 copyartifacts = callPackage ./plugins/copyartifacts.nix { beets = self.beets-minimal; };
49 extrafiles = callPackage ./plugins/extrafiles.nix { beets = self.beets-minimal; };
50})