aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkgs/krops/default.nix19
1 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/krops/default.nix b/pkgs/krops/default.nix
index d5a75d7..f449474 100644
--- a/pkgs/krops/default.nix
+++ b/pkgs/krops/default.nix
@@ -4,6 +4,24 @@ in
{ exec, nix, openssh, populate, writeDash }: rec {
+ build = target:
+ exec "rebuild.${target.host}" rec {
+ filename = "${openssh}/bin/ssh";
+ argv = [
+ filename
+ "-l" target.user
+ "-p" target.port
+ "-t"
+ target.host
+ (lib.concatStringsSep " " [
+ "nix build"
+ "-I ${lib.escapeShellArg target.path}"
+ "--no-link -f '<nixpkgs/nixos>'"
+ "config.system.build.toplevel"
+ ])
+ ];
+ };
+
rebuild = args: target:
exec "rebuild.${target.host}" rec {
filename = "${openssh}/bin/ssh";
@@ -24,6 +42,7 @@ in
writeDash name ''
set -efu
${populate { inherit force source; target = target'; }}
+ ${build target'}
${rebuild ["switch"] target'}
'';