diff options
| author | Chris Wells <chris@mathematicaster.org> | 2024-01-25 11:26:31 -0600 |
|---|---|---|
| committer | Chris Wells <chris@mathematicaster.org> | 2024-01-25 11:26:31 -0600 |
| commit | 45156e2bdb359c22398f8c7a60fb729ad168786a (patch) | |
| tree | e8e8ca1e9a1b4505df1187028091f9cf2b173ef9 /modules/manifest.nix | |
| parent | d6949fe35c1b4c7a9e93d1430e5c1b1d5dd4d9c6 (diff) | |
| download | kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar.gz kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar.bz2 kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar.lz kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar.xz kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.tar.zst kobo-manager-45156e2bdb359c22398f8c7a60fb729ad168786a.zip | |
This distribution is coming together
Diffstat (limited to 'modules/manifest.nix')
| -rw-r--r-- | modules/manifest.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/manifest.nix b/modules/manifest.nix new file mode 100644 index 0000000..718ffb4 --- /dev/null +++ b/modules/manifest.nix @@ -0,0 +1,38 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.manifest; +in { + options.manifest = mkOption { + default = {}; + type = with types; attrsOf (submodule ({ name, config, ... }: { + options = { + enable = mkEnableOption name // { default = true; }; + targets = mkOption { + type = with types; listOf str; + default = [ name ]; + }; + mergeTool = mkOption { + type = with types; functionTo (functionTo str); + description = '' + Sometimes we don't just want to overwrite the existing kobo file; instead we need to merge them. + This is the executable which does this. + The first argument is the local file and the second is the kobo file. + Note that the local file path and the kobo file path only disagree in their top-level directory and otherwise are the same path. + ''; + example = '' + localFile: koboFile: "cp ''${localFile} ''${koboFile}" + ''; + }; + remoteOnly = mkOption { + type = types.bool + default = false; + description = '' + In general, the manifest only considers local files that match the target/pattern. + Setting this to true means that the kobo files will be scanned and the provided mergeTool will be run with the first argument set to null. + ''; + }; + }; + })); + }; +} |
