{ config, pkgs, lib, ... }: with builtins // lib; { imports = [ ./files.nix ]; options = { koreader = { flavor = mkOption { type = with types; nullOr <| enum [ "kobo" "pocketbook" ]; default = null; }; basePackage = mkOption { type = types.package; }; koreaderPath = mkOption { type = types.str; }; }; }; config = mkMerge [ (mkIf (config.koreader.flavor == "kobo") { koreader = { basePackage = mkOptionDefault pkgs.koreader-kobo; koreaderPath = mkOptionDefault ".adds/koreader"; }; }) (mkIf (config.koreader.flavor == "pocketbook") { koreader = { basePackage = mkOptionDefault pkgs.koreader-pocketbook; koreaderPath = mkOptionDefault "applications/koreader"; }; }) ]; }