Skip to content

Commit c60bbcf

Browse files
Mic92mergify[bot]
authored andcommitted
move more code into sshCopyIdArgs function
1 parent 7cff10e commit c60bbcf

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/nixos-anywhere.sh

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ buildOnRemote=n
9595

9696
declare -A diskEncryptionKeys
9797
declare -a nixCopyOptions
98-
declare -a sshCopyIdArgs
9998
declare -a sshArgs
10099

101100
while [[ $# -gt 0 ]]; do
@@ -286,14 +285,6 @@ if [[ -z ${sshConnection-} ]]; then
286285
abort "ssh-host must be set"
287286
fi
288287

289-
# we generate a temporary ssh keypair that we can use during nixos-anywhere
290-
ssh_key_dir=$(mktemp -d)
291-
trap 'rm -rf "$ssh_key_dir"' EXIT
292-
mkdir -p "$ssh_key_dir"
293-
# ssh-copy-id requires this directory
294-
mkdir -p "$HOME/.ssh/"
295-
ssh-keygen -t ed25519 -f "$ssh_key_dir"/nixos-anywhere -P "" -C "nixos-anywhere" >/dev/null
296-
297288
# parse flake nixos-install style syntax, get the system attr
298289
if [[ -n ${flake-} ]]; then
299290
if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
@@ -329,22 +320,31 @@ if [[ -n ${SSH_PRIVATE_KEY} ]] && [[ -z ${sshPrivateKeyFile-} ]]; then
329320
)
330321
fi
331322

332-
if [[ -n ${sshPrivateKeyFile} ]]; then
333-
unset SSH_AUTH_SOCK # don't use system agent if key was supplied
334-
sshCopyIdArgs+=(-o "IdentityFile=${sshPrivateKeyFile}" -f)
335-
fi
336-
337323
sshSettings=$(ssh "${sshArgs[@]}" -G "${sshConnection}")
338324
sshUser=$(echo "$sshSettings" | awk '/^user / { print $2 }')
339325
sshHost=$(echo "$sshSettings" | awk '/^hostname / { print $2 }')
340326

341327
uploadSshKey() {
328+
# we generate a temporary ssh keypair that we can use during nixos-anywhere
329+
sshKeyDir=$(mktemp -d)
330+
trap 'rm -rf "$ssh_key_dir"' EXIT
331+
mkdir -p "$sshKeyDir"
332+
# ssh-copy-id requires this directory
333+
mkdir -p "$HOME/.ssh/"
334+
ssh-keygen -t ed25519 -f "$sshKeyDir"/nixos-anywhere -P "" -C "nixos-anywhere" >/dev/null
335+
336+
declare -a sshCopyIdArgs
337+
if [[ -n ${sshPrivateKeyFile} ]]; then
338+
unset SSH_AUTH_SOCK # don't use system agent if key was supplied
339+
sshCopyIdArgs+=(-o "IdentityFile=${sshPrivateKeyFile}" -f)
340+
fi
341+
342342
step Uploading install SSH keys
343343
until
344344
if [[ -n ${envPassword-} ]]; then
345345
sshpass -e \
346346
ssh-copy-id \
347-
-i "$ssh_key_dir"/nixos-anywhere.pub \
347+
-i "$sshKeyDir"/nixos-anywhere.pub \
348348
-o ConnectTimeout=10 \
349349
-o UserKnownHostsFile=/dev/null \
350350
-o IdentitiesOnly=yes \
@@ -354,7 +354,7 @@ uploadSshKey() {
354354
"$sshConnection"
355355
else
356356
ssh-copy-id \
357-
-i "$ssh_key_dir"/nixos-anywhere.pub \
357+
-i "$sshKeyDir"/nixos-anywhere.pub \
358358
-o ConnectTimeout=10 \
359359
-o UserKnownHostsFile=/dev/null \
360360
-o StrictHostKeyChecking=no \
@@ -461,7 +461,7 @@ runDisko() {
461461
--derivation --no-check-sigs
462462
diskoScript=$(
463463
nixBuild "${flake}#nixosConfigurations.\"${flakeAttr}\".config.system.build.diskoScript" \
464-
--eval-store auto --store "ssh-ng://$sshConnection?ssh-key=$ssh_key_dir/nixos-anywhere"
464+
--eval-store auto --store "ssh-ng://$sshConnection?ssh-key=$sshKeyDir/nixos-anywhere"
465465
)
466466
fi
467467

@@ -480,7 +480,7 @@ nixosInstall() {
480480
--derivation --no-check-sigs
481481
nixosSystem=$(
482482
nixBuild "${flake}#nixosConfigurations.\"${flakeAttr}\".config.system.build.toplevel" \
483-
--eval-store auto --store "ssh-ng://$sshConnection?ssh-key=$ssh_key_dir/nixos-anywhere&remote-store=local?root=/mnt"
483+
--eval-store auto --store "ssh-ng://$sshConnection?ssh-key=$sshKeyDir/nixos-anywhere&remote-store=local?root=/mnt"
484484
)
485485
fi
486486

0 commit comments

Comments
 (0)