aboutsummaryrefslogtreecommitdiff
path: root/hosts/enode/perform-install.sh
blob: 5edef0915832008696f571d846eb4b8e70ceb9b6 (plain)
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
#!/usr/bin/env bash
set -xeu pipefail

HNAME="enode"
HOST="isabella@$HNAME.sorre.xyz"
DISKO_SCRIPT_OUTPUT=".#nixosConfigurations.$HNAME.config.system.build.diskoScript"
TOPLEVEL_OUTPUT=".#nixosConfigurations.$HNAME.config.system.build.toplevel"

nix build --no-link "$DISKO_SCRIPT_OUTPUT" "$TOPLEVEL_OUTPUT"

DISKO_SCRIPT_PATH="$(nix path-info "$DISKO_SCRIPT_OUTPUT")"
HOST_TOPLEVEL_PATH="$(nix path-info "$TOPLEVEL_OUTPUT")"

nix copy --substitute-on-destination --to "ssh://$HOST" "$DISKO_SCRIPT_PATH"

printf '%s\n' \
    "$DISKO_SCRIPT_PATH" \
    'chgrp --recursive wheel /mnt/nix' \
    'chmod --recursive g+w /mnt/nix' \
  | ssh -T "$HOST" "sudo -p '' -S -- bash -s"

nix copy --substitute-on-destination \
  --to "ssh://$HOST?remote-store=/mnt" \
  "$HOST_TOPLEVEL_PATH"

ssh -T "$HOST" "sudo -p -- nixos-install --verbose --no-channel-copy --closure $HOST_TOPLEVEL_PATH"