mirror of
https://github.com/dump-dvb/nix-config.git
synced 2024-06-05 07:49:24 +02:00
Grigory Shipunov
a3a5d0652c
Since we factored out deployment-independent options to separate flake the options that are left in this flake are still using the same namespace. This change renames the option attrset local to this flake.
42 lines
1.2 KiB
Nix
42 lines
1.2 KiB
Nix
{ self, pkgs, systems }:
|
|
let
|
|
|
|
installScript = (system:
|
|
let ip = "10.13.37.${toString (system.config.ddvbDeployment.systemNumber + 100)}";
|
|
in
|
|
(pkgs.writeScriptBin "deploy" ''
|
|
#!${pkgs.runtimeShell}
|
|
ssh root@${ip} "ps cax | grep \"nixos-rebuild\" > /dev/null"
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "\e[1;31m [!] nixos-rebuild is already running on ${ip}"
|
|
exit 1
|
|
else
|
|
nix copy --to ssh://root@${ip} ${self}
|
|
ssh root@${ip} -- nixos-rebuild switch --option narinfo-cache-negative-ttl 0 --flake ${self} -L
|
|
fi
|
|
''));
|
|
|
|
installScripts = pkgs.lib.mapAttrs'
|
|
(name: system:
|
|
pkgs.lib.attrsets.nameValuePair ("deploy-" + name) (installScript system))
|
|
systems;
|
|
|
|
deployAllExecutablePathsConcatted =
|
|
pkgs.lib.strings.concatMapStringsSep " " (path: "${path}/bin/deploy")
|
|
(builtins.attrValues installScripts);
|
|
|
|
deployAllScript = (name:
|
|
pkgs.writeScriptBin name (
|
|
''
|
|
#!${pkgs.runtimeShell} -ex
|
|
${pkgs.parallel}/bin/parallel --will-cite -j10 ::: ${deployAllExecutablePathsConcatted} || echo "Some deployment failed"
|
|
''
|
|
));
|
|
|
|
in
|
|
{
|
|
deploy-all = deployAllScript "deploy-all";
|
|
nuke-all = deployAllScript "nuke-all";
|
|
} // installScripts
|