diff options
| author | Chris Wells <chris@mathematicaster.org> | 2026-10-28 11:49:51 -0400 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2026-10-28 11:49:51 -0400 |
| commit | b87ced9a95fd0de4e3631e67cc5a7a929adee464 (patch) | |
| tree | 3f02b2679ba3397fbbc5b172cfa613b2f6c93134 /modules/default.nix | |
| parent | f9bdbf51aa61503d77e387095e7a4e1f34acdde3 (diff) | |
| download | ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar.gz ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar.bz2 ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar.lz ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar.xz ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.tar.zst ko-manager-b87ced9a95fd0de4e3631e67cc5a7a929adee464.zip | |
Working concept with an instance for my pocketbook
Diffstat (limited to 'modules/default.nix')
| -rw-r--r-- | modules/default.nix | 64 |
1 files changed, 43 insertions, 21 deletions
diff --git a/modules/default.nix b/modules/default.nix index d32d8f6..d32cbe4 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -2,26 +2,48 @@ let inherit (lib) mkOption mkEnableOption types; inherit (flake-parts-lib) mkPerSystemOption; -in { - options.perSystem = mkPerSystemOption ({ pkgs, system, config, ... }: { - options.koreader = mkOption { - default = {}; - type = types.lazyAttrsOf <| types.submoduleWith { - shorthandOnlyDefinesConfig = true; - modules = [ - { - _module.args = { - inherit pkgs lib; - }; - } - ({ name, ... }: { - imports = [ ./main.nix ]; - options = { - enable = mkEnableOption name // { default = true; }; - }; - }) - ]; +in +{ + options.perSystem = mkPerSystemOption ( + { + pkgs, + system, + config, + ... + }: + { + options.koreader = mkOption { + default = { }; + type = + types.lazyAttrsOf + <| types.submoduleWith { + shorthandOnlyDefinesConfig = true; + modules = [ + { + _module.args = { + inherit pkgs lib; + }; + } + ({ name, ... }: { + imports = [ ./main.nix ]; + options = { + enable = mkEnableOption name // { + default = true; + }; + }; + }) + ]; + }; }; - }; - }); + + config.packages = + let + koreaders = lib.filterAttrs (_: v: v.enable) config.koreader; + in + lib.mapAttrs' (name: value: { + name = "koreader-${name}"; + value = value.koreader.finalPackage; + }) koreaders; + } + ); } |
