summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2018-07-10 10:15:39 +0200
committertv <tv@krebsco.de>2018-07-10 10:15:39 +0200
commit9677846bf5770f17dcc87a3fa9855343dc9248ca (patch)
tree9ac4be680112288f10cc44e44a5a37d21e46f52d
parent4e466eaf05861b47365c5ef46a31a188b70f3615 (diff)
krops: add writePopulate
-rw-r--r--pkgs/krops/default.nix30
1 files changed, 19 insertions, 11 deletions
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} \