There is nothing in this commit except for the changes made by nix-shell -p nixfmt-rfc-style --run "nixfmt ." If this has mucked up your open branches then sorry about that. You can probably nixfmt them to match before merging
42 lines
835 B
Nix
42 lines
835 B
Nix
{
|
|
liminix,
|
|
lib,
|
|
s6-rc-round-robin,
|
|
}:
|
|
{ services, name }:
|
|
let
|
|
inherit (liminix.services) oneshot longrun;
|
|
controlled-services = builtins.map (
|
|
s:
|
|
s.overrideAttrs (o: {
|
|
inherit controller;
|
|
})
|
|
) services;
|
|
controller =
|
|
let
|
|
name' = "control-${name}";
|
|
in
|
|
longrun {
|
|
name = name';
|
|
run = ''
|
|
in_outputs ${name'}
|
|
exec ${s6-rc-round-robin}/bin/s6-rc-round-robin \
|
|
-p ${proxy.name} \
|
|
${lib.concatStringsSep " " (builtins.map (f: f.name) controlled-services)}
|
|
'';
|
|
};
|
|
proxy = oneshot rec {
|
|
inherit name;
|
|
inherit controller;
|
|
buildInputs = controlled-services;
|
|
up = ''
|
|
echo start proxy ${name}
|
|
set -x
|
|
(in_outputs ${name}
|
|
cp -rv $(output_path ${controller} active)/* .
|
|
)
|
|
'';
|
|
};
|
|
in
|
|
proxy
|