summaryrefslogtreecommitdiff
path: root/modules/default.nix
diff options
context:
space:
mode:
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;
+ }
+ );
}