From f30debc65ca41beddde696393718764376b9e299 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 3 May 2018 13:11:21 +0200 Subject: kops -> krops --- pkgs/krops/default.nix | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pkgs/krops/default.nix (limited to 'pkgs/krops/default.nix') diff --git a/pkgs/krops/default.nix b/pkgs/krops/default.nix new file mode 100644 index 0000000..fc52327 --- /dev/null +++ b/pkgs/krops/default.nix @@ -0,0 +1,48 @@ +let + lib = import ../../lib // { + isLocalTarget = let + origin = lib.mkTarget ""; + in target: + target.host == origin.host && + target.user == origin.user; + }; +in + +{ nix, openssh, populate, writeDash, writeJSON }: { + + 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} + + ${openssh}/bin/ssh \ + ${target'.user}@${target'.host} -p ${target'.port} \ + nixos-rebuild switch -I ${target'.path} + ''; + + 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} + + ${nix}/bin/nix-build \ + -A config.system.build.toplevel \ + -I ${target'.path} \ + --arg modules '[]' \ + --no-out-link \ + --show-trace \ + '' + ''; + +} -- cgit v1.2.3