summaryrefslogtreecommitdiff
path: root/modules/default.nix
diff options
context:
space:
mode:
authorChris Wells <chris@mathematicaster.org>2026-10-28 11:49:51 -0400
committerChris Wells <chris@mathematicaster.org>2026-10-28 11:49:51 -0400
commitb87ced9a95fd0de4e3631e67cc5a7a929adee464 (patch)
tree3f02b2679ba3397fbbc5b172cfa613b2f6c93134 /modules/default.nix
parentf9bdbf51aa61503d77e387095e7a4e1f34acdde3 (diff)
downloadko-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.nix64
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;
+ }
+ );
}