diff --git a/pkgs/krops/default.nix b/pkgs/krops/default.nix index fc52327..496b8d3 100644 --- a/pkgs/krops/default.nix +++ b/pkgs/krops/default.nix @@ -8,34 +8,42 @@ let }; in -{ nix, openssh, populate, writeDash, writeJSON }: { +{ nix, openssh, populate, writeDash, writeJSON }: let + + populate' = name: { source, target }: + writeDash "${name}-populate" '' + set -efu + source=${writeJSON "${name}-source.json" source} + target=${target.user}@${target.host}:${target.port}${target.path} + exec ${populate}/bin/populate "$target" < "$source" + ''; + +in { writeDeploy = name: { source, target }: let target' = lib.mkTarget target; in writeDash name '' set -efu - - ${populate}/bin/populate \ - ${target'.user}@${target'.host}:${target'.port}${target'.path} \ - < ${writeJSON "${name}-source.json" source} - + ${populate' name { inherit source; target = target'; }} ${openssh}/bin/ssh \ ${target'.user}@${target'.host} -p ${target'.port} \ nixos-rebuild switch -I ${target'.path} ''; + writePopulate = name: { source, target }: + populate' name { + inherit source; + target = lib.mkTarget target; + }; + writeTest = name: { source, target }: let target' = lib.mkTarget target; in assert lib.isLocalTarget target'; writeDash name '' set -efu - - ${populate}/bin/populate --force \ - ${target'.path} \ - < ${writeJSON "${name}-source.json" source} - + ${populate' name { inherit source; target = target'; }} ${nix}/bin/nix-build \ -A config.system.build.toplevel \ -I ${target'.path} \