diff options
| author | Chris Wells <chris@mathematicaster.org> | 2024-09-03 12:13:30 -0500 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2024-09-03 12:13:30 -0500 |
| commit | 849bdb056feb8e064396970f79c8962b20b0c07f (patch) | |
| tree | 03c220b6f90ad1f68a45bb55cfba377c11260cf9 /modules/kfmon | |
| parent | d7483ed8505710033384d7fabad34470818bc760 (diff) | |
| download | kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.gz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.bz2 kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.lz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.xz kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.tar.zst kobo-manager-849bdb056feb8e064396970f79c8962b20b0c07f.zip | |
Re-doing a bunch of this
Diffstat (limited to 'modules/kfmon')
| -rw-r--r-- | modules/kfmon/default.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/modules/kfmon/default.nix b/modules/kfmon/default.nix new file mode 100644 index 0000000..8557a3e --- /dev/null +++ b/modules/kfmon/default.nix @@ -0,0 +1,59 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.kfmon; + ini = pkgs.formats.ini {}; +in { + options.kfmon = { + enable = mkEnableOption "KFMon"; + + package = mkPackageOption pkgs "kfmon" {}; + + path = mkOption { + type = types.str; + readOnly = true; + internal = true; + default = ".adds/kfmon"; + }; + + devicePath = mkOption { + type = types.str; + readOnly = true; + internal = true; + default = "/mnt/onboard/${cfg.path}"; + }; + + file = mkOption { + default = {}; + type = types.attrsOf (types.submodule (pkgs.callPackage ../lib/file-type.nix {})); + }; + + _allFiles = mkOption { + type = types.package; + internal = true; + readOnly = true; + default = (pkgs.callPackage ../lib/merge-files.nix {}) (attrValues file); + }; + + configs = mkOption { + type = types.attrsOf ini.type; + default = {}; + description = '' + KFMon .ini config files. Do not touch this unless you know what you're doing! + ''; + }; + }; + + config = { + kfmon.file = mapAttrs' (n: v: { + name = "kfmon-config-${n}"; + value = { + text = generators.toINI {} v; + target = + let + fixedN = if isSuffix ".ini" n then n else "${n}.ini"; + in "config/${fixedN}"; + }; + }); + }; +}; |
