2025-04-06 17:17:51 +02:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
let
|
|
|
|
cfg = config.dependencies;
|
|
|
|
|
|
|
|
packages = {
|
2025-04-07 22:47:41 +02:00
|
|
|
bat.default = "bat";
|
2025-04-07 17:16:13 +02:00
|
|
|
ctags.default = "ctags";
|
2025-04-06 17:17:51 +02:00
|
|
|
curl.default = "curl";
|
2025-04-07 17:26:05 +02:00
|
|
|
direnv.default = "direnv";
|
2025-04-07 18:03:28 +02:00
|
|
|
distant.default = "distant";
|
2025-04-07 18:21:01 +02:00
|
|
|
fish.default = "fish";
|
2025-04-07 16:03:09 +02:00
|
|
|
gcc.default = "gcc";
|
2025-04-07 18:00:41 +02:00
|
|
|
gh.default = "gh";
|
2025-04-06 17:21:24 +02:00
|
|
|
git = {
|
|
|
|
default = "git";
|
|
|
|
example = [ "gitMinimal" ];
|
|
|
|
};
|
2025-04-07 17:22:34 +02:00
|
|
|
go.default = "go";
|
2025-04-07 17:28:21 +02:00
|
|
|
lean.default = "lean4";
|
2025-04-07 17:32:48 +02:00
|
|
|
ledger.default = "ledger";
|
2025-04-07 18:08:21 +02:00
|
|
|
manix.default = "manix";
|
2025-04-07 16:01:03 +02:00
|
|
|
nodejs = {
|
|
|
|
default = "nodejs";
|
|
|
|
example = "pkgs.nodejs_22";
|
|
|
|
};
|
2025-04-07 22:45:59 +02:00
|
|
|
plantuml.default = "plantuml";
|
2025-04-07 18:36:51 +02:00
|
|
|
ripgrep.default = "ripgrep";
|
2025-04-07 18:55:09 +02:00
|
|
|
sd.default = "sd";
|
|
|
|
sed.default = "gnused";
|
2025-04-07 17:18:17 +02:00
|
|
|
texpresso.default = "texpresso";
|
2025-04-07 18:22:32 +02:00
|
|
|
tinymist.default = "tinymist";
|
2025-04-07 15:55:20 +02:00
|
|
|
tree-sitter.default = "tree-sitter";
|
2025-04-07 17:10:53 +02:00
|
|
|
typst.default = "typst";
|
2025-04-06 17:21:36 +02:00
|
|
|
ueberzug.default = "ueberzugpp";
|
2025-04-07 18:24:49 +02:00
|
|
|
websocat.default = "websocat";
|
2025-04-07 15:49:34 +02:00
|
|
|
which.default = "which";
|
2025-04-07 18:18:23 +02:00
|
|
|
yazi.default = "yazi";
|
2025-04-06 17:17:51 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
mkDependencyOption = name: properties: {
|
|
|
|
enable = lib.mkEnableOption "Add ${name} to dependencies.";
|
|
|
|
|
|
|
|
package = lib.mkPackageOption pkgs name properties;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.dependencies = lib.mapAttrs mkDependencyOption packages;
|
|
|
|
|
|
|
|
config = {
|
|
|
|
extraPackages = lib.pipe cfg [
|
|
|
|
builtins.attrValues
|
|
|
|
(builtins.filter (p: p.enable))
|
|
|
|
(builtins.map (p: p.package))
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|