32 lines
909 B
Bash
Executable File
32 lines
909 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -xeuo pipefail
|
|
|
|
SYSTEM="$1"
|
|
REMOTE_HOST="$2"
|
|
REMOTE_ROOT="$3"
|
|
|
|
nix copy "${SYSTEM}" --to "ssh://${REMOTE_HOST}?remote-store=${REMOTE_ROOT}"
|
|
|
|
ssh "${REMOTE_HOST}" -- nix-env --store "${REMOTE_ROOT}" -p "${REMOTE_ROOT}/nix/var/nix/profiles/system" --set "${SYSTEM}"
|
|
|
|
ssh "${REMOTE_HOST}" -- mkdir -p "${REMOTE_ROOT}/tmp"
|
|
TMPSH="$(ssh "${REMOTE_HOST}" -- mktemp -p "${REMOTE_ROOT}/tmp")"
|
|
|
|
# shellcheck disable=SC2087
|
|
ssh "${REMOTE_HOST}" -- tee "${TMPSH}" <<EOF
|
|
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
nix-env --store "${REMOTE_ROOT}" -p "${REMOTE_ROOT}/nix/var/nix/profiles/system" --set "${SYSTEM}"
|
|
mkdir -m 0775 -p "${REMOTE_ROOT}/etc"
|
|
touch "${REMOTE_ROOT}/etc/NIXOS"
|
|
|
|
ln -sfn /proc/mounts "${REMOTE_ROOT}/etc/mtab"
|
|
|
|
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "${REMOTE_ROOT}" -c "/run/current-system/bin/switch-to-configuration boot"
|
|
EOF
|
|
|
|
ssh "${REMOTE_HOST}" -- bash "${TMPSH}"
|