parent
dcc6a69bae
commit
522c16bd86
@ -42,8 +42,7 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
instanceOptions = {
|
instanceOptions = {
|
||||||
options = {
|
options = sharedOptions // {
|
||||||
|
|
||||||
execConfig = mkOption {
|
execConfig = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
example = { Parameters = "/bin/sh"; };
|
example = { Parameters = "/bin/sh"; };
|
||||||
@ -84,17 +83,19 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
instanceToUnit = name: def:
|
instanceToUnit = name: def:
|
||||||
{ text = ''
|
let base = {
|
||||||
[Exec]
|
text = ''
|
||||||
${attrsToSection def.execConfig}
|
[Exec]
|
||||||
|
${attrsToSection def.execConfig}
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
${attrsToSection def.filesConfig}
|
${attrsToSection def.filesConfig}
|
||||||
|
|
||||||
[Network]
|
[Network]
|
||||||
${attrsToSection def.networkConfig}
|
${attrsToSection def.networkConfig}
|
||||||
'';
|
'';
|
||||||
};
|
} // def;
|
||||||
|
in base // { unit = makeUnit name base; };
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
@ -110,7 +111,7 @@ in {
|
|||||||
|
|
||||||
config =
|
config =
|
||||||
let
|
let
|
||||||
units = mapAttrs' (n: v: nameValuePair "${n}.nspawn" (instanceToUnit n v)) cfg.instances;
|
units = mapAttrs' (n: v: nameValuePair "${n}.nspawn" (instanceToUnit n v)) cfg;
|
||||||
in mkIf (cfg != {}) {
|
in mkIf (cfg != {}) {
|
||||||
|
|
||||||
environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
|
environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user