Add obsidian-skills as a flake input (flake = false) and map each skill subdirectory into ~/.agents/skills/<skill>, alongside the existing local skills. Updates flow through `nix flake update obsidian-skills`.
45 lines
905 B
Nix
45 lines
905 B
Nix
{
|
|
lib,
|
|
config,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkIf;
|
|
inherit (lib.metacfg) mkBoolOpt;
|
|
|
|
cfg = config.metacfg.cli-apps.opencode;
|
|
|
|
obsidianSkills =
|
|
lib.mapAttrs'
|
|
(
|
|
name: _:
|
|
lib.nameValuePair ".agents/skills/${name}" {
|
|
source = "${inputs.obsidian-skills}/skills/${name}";
|
|
recursive = true;
|
|
}
|
|
)
|
|
(
|
|
lib.filterAttrs (_: type: type == "directory") (builtins.readDir "${inputs.obsidian-skills}/skills")
|
|
);
|
|
in
|
|
{
|
|
options.metacfg.cli-apps.opencode = {
|
|
enable = mkBoolOpt true "Enable opencode config.";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
xdg.configFile."opencode" = {
|
|
source = ../../../../config/opencode;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file = {
|
|
".agents/skills" = {
|
|
source = ../../../../config/agents/skills;
|
|
recursive = true;
|
|
};
|
|
}
|
|
// obsidianSkills;
|
|
};
|
|
}
|