aboutsummaryrefslogtreecommitdiff
path: root/modules/redux/file.nix
diff options
context:
space:
mode:
authorChris Wells <chris@mathematicaster.org>2024-01-24 14:56:56 -0600
committerChris Wells <chris@mathematicaster.org>2024-01-24 14:56:56 -0600
commitd6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6 (patch)
tree7ead1c89bf2490114129d51560280e29b174aaa6 /modules/redux/file.nix
downloadkobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar.gz
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar.bz2
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar.lz
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar.xz
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.tar.zst
kobo-manager-d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6.zip
Getting a whole kobo distribution together!
Diffstat (limited to 'modules/redux/file.nix')
-rw-r--r--modules/redux/file.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/redux/file.nix b/modules/redux/file.nix
new file mode 100644
index 0000000..e05318d
--- /dev/null
+++ b/modules/redux/file.nix
@@ -0,0 +1,44 @@
+{ config, pkgs, lib, ... }:
+with builtins // lib;
+let
+ cfg = config.file;
+in {
+ options.file = mkOption {
+ default = {};
+ type = with types; lazyAttrsOf (submodule ({ name, config, ... }: {
+ options = {
+ enable = mkEnableOption name // { default = true; };
+ target = mkOption {
+ type = types.str;
+ default = name;
+ };
+ executable = mkOption {
+ type = with types; nullOr bool;
+ default = null;
+ };
+ directory = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Enable this if the source file is a directory";
+ };
+ source = mkOption {
+ type = types.path;
+ };
+ text = mkOption {
+ type = with types; nullOr lines;
+ default = null;
+ };
+ };
+
+ config = mkMerge [
+ (mkIf (config.text != null) {
+ directory = false;
+ source = pkgs.writeText name config.text;
+ })
+ (mkIf (config.text == "") {
+ enable = false;
+ })
+ ];
+ }));
+ };
+}