diff options
author | makefu <github@syntax-fehler.de> | 2015-10-01 18:49:34 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2015-10-01 18:49:34 +0200 |
commit | 49c00cf74f778152f4aed943dedb7bbf283b16e7 (patch) | |
tree | 29946a2fedb005b68a417acf3ac04d6f858f8aa1 /krebs/3modules/build.nix | |
parent | 73aa31010415ac5f7bf86d2bb77099fc3097905a (diff) | |
parent | 4af4fa89e50c3769d9331608cec2e6752ceb4fcb (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'krebs/3modules/build.nix')
-rw-r--r-- | krebs/3modules/build.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/krebs/3modules/build.nix b/krebs/3modules/build.nix new file mode 100644 index 000000000..57495ea69 --- /dev/null +++ b/krebs/3modules/build.nix @@ -0,0 +1,72 @@ +{ config, lib, ... }: + +with import ../4lib { inherit lib; }; + +let + target = config.krebs.build // { user.name = "root"; }; + + out = { + # TODO deprecate krebs.build.host + options.krebs.build.host = mkOption { + type = types.host; + }; + + # TODO make krebs.build.profile shell safe + options.krebs.build.profile = mkOption { + type = types.str; + default = "/nix/var/nix/profiles/system"; + }; + + # TODO make krebs.build.target.host :: host + options.krebs.build.target = mkOption { + type = with types; nullOr str; + default = null; + }; + + # TODO deprecate krebs.build.user + options.krebs.build.user = mkOption { + type = types.user; + }; + + options.krebs.build.source.dir = mkOption { + type = types.attrsOf (types.submodule ({ config, ... }: { + options = { + host = mkOption { + type = types.host; + }; + path = mkOption { + type = types.str; + }; + target-path = mkOption { + type = types.str; + default = "/root/${config._module.args.name}"; + }; + url = mkOption { + type = types.str; + default = "file://${config.host.name}${config.path}"; + }; + }; + })); + default = {}; + }; + + options.krebs.build.source.git = mkOption { + type = with types; attrsOf (submodule ({ config, ... }: { + options = { + url = mkOption { + type = types.str; # TODO must be shell safe + }; + rev = mkOption { + type = types.str; + }; + target-path = mkOption { + type = types.str; + default = "/root/${config._module.args.name}"; + }; + }; + })); + default = {}; + }; + }; + +in out |