@@ -58,7 +58,6 @@ hasWget=
58
58
hasCurl=
59
59
hasSetsid=
60
60
hasNixOSFacter=
61
- remoteHomeDir=
62
61
63
62
tempDir=$( mktemp -d)
64
63
trap ' rm -rf "$tempDir"' EXIT
@@ -586,7 +585,7 @@ importFacts() {
586
585
587
586
# Necessary to prevent Bash erroring before printing out which fact had an issue
588
587
set +u
589
- for var in isOs isArch isInstaller isContainer isRoot hasIpv6Only hasTar hasCpio hasSudo hasDoas hasWget hasCurl hasSetsid remoteHomeDir ; do
588
+ for var in isOs isArch isInstaller isContainer isRoot hasIpv6Only hasTar hasCpio hasSudo hasDoas hasWget hasCurl hasSetsid; do
590
589
if [[ -z ${! var} ]]; then
591
590
abort " Failed to retrieve fact $var from host"
592
591
fi
@@ -727,7 +726,7 @@ runKexec() {
727
726
local logContent=" "
728
727
if logContent=$(
729
728
set +x
730
- runSsh " cat \" $remoteHomeDir /kexec/nixos-anywhere.log\ " 2>/dev/null" 2> /dev/null
729
+ runSsh ' cat "$HOME /kexec/nixos-anywhere.log" 2>/dev/null' 2> /dev/null
731
730
) ; then
732
731
echo " Remote output log:" >&2
733
732
echo " $logContent " >&2
@@ -736,28 +735,23 @@ runKexec() {
736
735
exit 1
737
736
}
738
737
739
- # Extract directly to the user's home directory
740
- if [[ -z $remoteHomeDir ]]; then
741
- abort " Could not determine home directory for user $sshUser "
742
- fi
743
-
744
738
# Define common remote commands template
745
739
local remoteCommandTemplate
746
740
remoteCommandTemplate="
747
741
# Run kexec commands with sudo if needed
748
742
{
749
743
set -eu ${enableDebug}
750
- ${maybeSudo} rm -rf \" $remoteHomeDir /kexec\"
751
- mkdir -p \" $remoteHomeDir /kexec\"
752
- cd \" $remoteHomeDir /kexec\"
744
+ ${maybeSudo} rm -rf \"\$ HOME /kexec\"
745
+ mkdir -p \"\$ HOME /kexec\"
746
+ cd \"\$ HOME /kexec\"
753
747
echo Downloading kexec tarball, this may take a moment...
754
748
# Execute tar command
755
749
%TAR_COMMAND%
756
- TMPDIR=\" $remoteHomeDir /kexec\" ${maybeSudo} setsid --wait \" $remoteHomeDir /kexec/kexec/run\" --kexec-extra-flags $( printf ' %q' " $kexecExtraFlags " )
757
- } 2>&1 | tee \" $remoteHomeDir /kexec/nixos-anywhere.log\" || true
750
+ TMPDIR=\"\$ HOME /kexec\" ${maybeSudo} setsid --wait \"\$ HOME /kexec/kexec/run\" --kexec-extra-flags $( printf ' %q' " $kexecExtraFlags " )
751
+ } 2>&1 | tee \"\$ HOME /kexec/nixos-anywhere.log\" || true
758
752
759
753
# The script will likely disconnect us, so we consider it successful if we see the kexec message
760
- if ! grep -q 'machine will boot into nixos' \" $remoteHomeDir /kexec/nixos-anywhere.log\" ; then
754
+ if ! grep -q 'machine will boot into nixos' \"\$ HOME /kexec/nixos-anywhere.log\" ; then
761
755
echo 'Kexec may have failed - check output above'
762
756
exit 1
763
757
fi
797
791
tarCommand=" $( printf ' %q ' " ${remoteUploadCommand[@]} " ) | tar -xv ${tarDecomp} "
798
792
else
799
793
# Upload the kexec tarball first
800
- " ${localUploadCommand[@]} " | runSsh " cat > \" $remoteHomeDir \" /kexec-tarball.tar.gz"
794
+ " ${localUploadCommand[@]} " | runSsh ' cat > "$HOME /kexec-tarball.tar.gz"'
801
795
# Use local file for extraction
802
- tarCommand=" cat \" $remoteHomeDir \" /kexec-tarball.tar.gz | tar -xv ${tarDecomp} "
796
+ tarCommand=" cat \"\$ HOME /kexec-tarball.tar.gz\" | tar -xv ${tarDecomp} "
803
797
fi
804
798
805
799
local remoteCommands
806
800
remoteCommands=${remoteCommandTemplate// ' %TAR_COMMAND%' / $tarCommand }
807
801
808
802
# Create and execute the script on the remote system
809
- runSsh " mkdir -p \" $remoteHomeDir /kexec\ " && cat > \" $remoteHomeDir /kexec/unpack .sh\" " << EOF
803
+ runSsh ' mkdir -p "$HOME /kexec" && cat > "$HOME /kexec/nixos-anywhere-kexec .sh" ' << EOF
810
804
$remoteCommands
811
805
EOF
812
- runSsh " bash $remoteHomeDir /kexec/unpack .sh" || handleKexecFailure " Kexec"
806
+ runSsh ' bash "$HOME /kexec/nixos-anywhere-kexec .sh"' || handleKexecFailure " Kexec"
813
807
814
808
# use the default SSH port to connect at this point
815
809
local i
0 commit comments