blob: c85ef45e624964014a15253e7ea63c2a2c2d1761 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# The only deployment tool that anybody should take seriously
{ pkgs, getBins }:
let
bins = getBins pkgs.coreutils [ "realpath" ]
// getBins pkgs.openssh [ "ssh" ]
// getBins pkgs.nix [ "nix-build" "nix-copy-closure" ]
;
deploy = pkgs.writers.writeDash "deploy-machine-profpatsch" ''
set -e
MACHINE="''${1?please set machine as first argument}"
OUT_LINK="system-$MACHINE"
${bins.nix-build} \
--show-trace \
--out-link "$OUT_LINK" \
-I "nixpkgs=$HOME/nixpkgs" \
-A "machines.profpatsch.$MACHINE.build" \
"$HOME/vuizvui"
${bins.nix-copy-closure} \
--to "ssh://$MACHINE?compress=true" \
"$OUT_LINK"
${bins.ssh} \
"root@$MACHINE" \
"$(${bins.realpath} $OUT_LINK)/bin/switch-to-configuration" \
"switch"
'';
in {
inherit
deploy
;
}
|