diff options
author | tv <tv@shackspace.de> | 2015-07-23 01:56:46 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-07-23 01:56:46 +0200 |
commit | 7a40f89e01593adff35f943aa86492ac4281d4e8 (patch) | |
tree | f233d8ab56ca16dd2c2953aca202848726ac4904 /4lib | |
parent | d97be4322371f06b423e308b606824c02f1a67af (diff) |
4 tv: generate tinc config
Diffstat (limited to '4lib')
-rw-r--r-- | 4lib/tv/default.nix | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/4lib/tv/default.nix b/4lib/tv/default.nix index ec46d8ea8..5eb9ac45f 100644 --- a/4lib/tv/default.nix +++ b/4lib/tv/default.nix @@ -76,6 +76,10 @@ builtins // lib // rec { net = submodule ({ config, ... }: { options = { + via = mkOption { + type = nullOr net; + default = null; + }; addrs = mkOption { type = listOf addr; apply = _: config.addrs4 ++ config.addrs6; @@ -92,8 +96,23 @@ builtins // lib // rec { # TODO nonEmptyListOf hostname type = listOf hostname; }; - tinc-key = mkOption { - type = str; + tinc = mkOption { + type = submodule { + options = { + config = mkOption { + type = str; + apply = _: '' + ${optionalString (config.via != null) + (concatMapStringsSep "\n" (a: "Address = ${a}") config.via.addrs)} + ${concatMapStringsSep "\n" (a: "Subnet = ${a}") config.addrs} + ${config.tinc.pubkey} + ''; + }; + pubkey = mkOption { + type = str; + }; + }; + }; }; }; }); |