2
2
set -euo pipefail
3
3
4
4
SCRIPT_DIR=" $( realpath " $( dirname " ${BASH_SOURCE[0]} " ) " ) "
5
+
6
+ declare -A input
7
+
8
+ while IFS= read -r -d ' ' key && IFS= read -r -d ' ' value; do
9
+ input[$key ]=$value
10
+ done < <( jq -j ' to_entries[] | (.key, "\u0000", .value, "\u0000")' <<< $ARGUMENTS )
11
+
5
12
args=()
6
13
7
- if [[ ${debug_logging- } == " true" ]]; then
14
+ if [[ ${input[ debug_logging] } == " true" ]]; then
8
15
set -x
16
+ declare -p input
9
17
args+=(" --debug" )
10
18
fi
11
- if [[ ${stop_after_disko- } == " true" ]]; then
19
+ if [[ ${input[ stop_after_disko] } == " true" ]]; then
12
20
args+=(" --stop-after-disko" )
13
21
fi
14
- if [[ ${kexec_tarball_url- } != " " ]]; then
15
- args+=(" --kexec" " ${kexec_tarball_url} " )
22
+ if [[ ${input[ kexec_tarball_url] } != " null " ]]; then
23
+ args+=(" --kexec" " ${input[ kexec_tarball_url] } " )
16
24
fi
17
- if [[ ${no_reboot- } == " true" ]]; then
25
+ if [[ ${input[ no_reboot] } == " true" ]]; then
18
26
args+=(" --no-reboot" )
19
27
fi
20
- if [[ ${build_on_remote- } == " true" ]]; then
28
+ if [[ ${input[ build_on_remote] } == " true" ]]; then
21
29
args+=(" --build-on-remote" )
22
30
fi
23
- if [[ -n ${flake- } ]]; then
24
- args+=(" --flake" " ${flake} " )
31
+ if [[ -n ${input[ flake] } ]]; then
32
+ args+=(" --flake" " ${input[ flake] } " )
25
33
else
26
- args+=(" --store-paths" " ${nixos_partitioner} " " ${nixos_system} " )
34
+ args+=(" --store-paths" " ${input[ nixos_partitioner] } " " ${input[ nixos_system] } " )
27
35
fi
28
36
if [[ -n ${SSHPASS-} ]]; then
29
37
args+=(" --env-password" )
@@ -35,25 +43,25 @@ cleanup() {
35
43
}
36
44
trap cleanup EXIT
37
45
38
- if [[ ${extra_files_script- } != " " ]]; then
39
- if [[ ! -f ${extra_files_script} ]]; then
40
- echo " extra_files_script '${extra_files_script} ' does not exist"
46
+ if [[ ${input[ extra_files_script] } != " null " ]]; then
47
+ if [[ ! -f ${input[ extra_files_script] } ]]; then
48
+ echo " extra_files_script '${input[ extra_files_script] } ' does not exist"
41
49
exit 1
42
50
fi
43
- if [[ ! -x ${extra_files_script} ]]; then
44
- echo " extra_files_script '${extra_files_script} ' is not executable"
51
+ if [[ ! -x ${input[ extra_files_script] } ]]; then
52
+ echo " extra_files_script '${input[ extra_files_script] } ' is not executable"
45
53
exit 1
46
54
fi
47
- extra_files_script=$( realpath " ${extra_files_script} " )
55
+ extra_files_script=$( realpath " ${input[ extra_files_script] } " )
48
56
mkdir " ${tmpdir} /extra-files"
49
57
pushd " ${tmpdir} /extra-files"
50
58
$extra_files_script
51
59
popd
52
60
args+=(" --extra-files" " ${tmpdir} /extra-files" )
53
61
fi
54
62
55
- args+=(" -p" " ${target_port} " )
56
- args+=(" ${target_user} @${target_host} " )
63
+ args+=(" -p" " ${input[ target_port] } " )
64
+ args+=(" ${input[ target_user] } @${input[ target_host] } " )
57
65
58
66
keyIdx=0
59
67
while [[ $# -gt 0 ]]; do
@@ -73,4 +81,4 @@ while [[ $# -gt 0 ]]; do
73
81
keyIdx=$(( keyIdx + 1 ))
74
82
done
75
83
76
- nix run --extra-experimental-features ' nix-command flakes' " path:${SCRIPT_DIR} /../..#nixos-anywhere" -- " ${args[@]} "
84
+ SSH_PASS= ${input[target_pass]} SSH_PRIVATE_KEY= " ${input[ssh_private_key]} " nix run --extra-experimental-features ' nix-command flakes' " path:${SCRIPT_DIR} /../..#nixos-anywhere" -- " ${args[@]} "
0 commit comments