diff options
Diffstat (limited to 'bootstrap/99_ensure_config_variables.sh')
-rwxr-xr-x | bootstrap/99_ensure_config_variables.sh | 93 |
1 files changed, 47 insertions, 46 deletions
diff --git a/bootstrap/99_ensure_config_variables.sh b/bootstrap/99_ensure_config_variables.sh index ce8ffa0f..ba7d0a58 100755 --- a/bootstrap/99_ensure_config_variables.sh +++ b/bootstrap/99_ensure_config_variables.sh @@ -7,20 +7,20 @@ if ! [ "$NIX_ENVIRONMENT_VARIABLES_SET" ]; then if ! [ "$NIX_HOST" ]; then msg "Select a host:" _hosts=$(mktmp) - curl https://codeberg.org/soispha/nixos-config/raw/branch/prime/flake/nixosConfigurations/default.nix 2> /dev/null | awk -F '"' '/hosts = /{for (i=2;i<NF;i+=2) {print $i}}' > "$_hosts" + curl https://codeberg.org/soispha/nixos-config/raw/branch/prime/flake/nixosConfigurations/default.nix 2>/dev/null | awk -F '"' '/hosts = /{for (i=2;i<NF;i+=2) {print $i}}' >"$_hosts" - while ! grep "$host" "$_hosts" > /dev/null || [ "$(printf "%s" "$host" | wc -c)" -eq 0 ]; do + while ! grep "$host" "$_hosts" >/dev/null || [ "$(printf "%s" "$host" | wc -c)" -eq 0 ]; do i=1 while read -r host_read; do printf "%4s) %s \n" "$i" "$host_read" i=$((i + 1)) - done < "$_hosts" + done <"$_hosts" printf "%4s) Exit\n" "q" readp "Enter a option: " host [ "$host" = "q" ] && exit 1 host=$(awk -v i="$host" '{if (NR==i) {print $0}}' "$_hosts") - if ! grep "$host" "$_hosts" > /dev/null || [ "$(printf "%s" "$host" | wc -c)" -eq 0 ]; then + if ! grep "$host" "$_hosts" >/dev/null || [ "$(printf "%s" "$host" | wc -c)" -eq 0 ]; then warning "No host selected. Select a host to continue.\n" fi done @@ -29,16 +29,16 @@ if ! [ "$NIX_ENVIRONMENT_VARIABLES_SET" ]; then fi if ! [ "$NIX_DISK" ] && [ "$INSTALL" ]; then available_disks="$(mktmp)" - lsblk -J | jq '.[] | map(.name) | [foreach .[] as $item ({item: null, index: -1}; {$item, index: (.index + 1)})]' > "$available_disks" + lsblk -J | jq '.[] | map(.name) | [foreach .[] as $item ({item: null, index: -1}; {$item, index: (.index + 1)})]' >"$available_disks" [ "$(jq '.[]' "$available_disks" | wc -l)" -eq 0 ] && die "No disks found" msg "Select a disk to format:" i=9999 # nobody will have so many disks attached - while ! jq -e --argjson i "$i" '.[$i]' "$available_disks" > /dev/null 2>&1; do + while ! jq -e --argjson i "$i" '.[$i]' "$available_disks" >/dev/null 2>&1; do for _disk in $(jq -c '.[]' "$available_disks"); do - printf "%4s) %s \n" "$(echo "$_disk" | jq '.index')" "$(echo "$_disk" | jq '.item' | tr -d "\"")" + printf "%4s) %s \n" "$(echo "$_disk" | jq '.index')" "$(echo "$_disk" | jq '.item' | tr -d '"')" done printf "%4s) Exit\n" "q" readp "Enter a option: " _disk @@ -48,9 +48,9 @@ if ! [ "$NIX_ENVIRONMENT_VARIABLES_SET" ]; then else i="$_disk" fi - if jq -e --argjson i "$i" 'nth($i)' "$available_disks" > /dev/null 2>&1; then + if jq -e --argjson i "$i" 'nth($i)' "$available_disks" >/dev/null 2>&1; then _disk=$(mktmp) - jq -e --argjson i "$i" 'nth($i)' "$available_disks" > "$_disk" + jq -e --argjson i "$i" 'nth($i)' "$available_disks" >"$_disk" else warning "No disk selected. Select a disk to continue.\n" fi @@ -58,65 +58,66 @@ if ! [ "$NIX_ENVIRONMENT_VARIABLES_SET" ]; then warn "All data on disk $(jq '.item' "$_disk") will be deleted." readp "Continue with this disk? [N/y]: " result + # shellcheck disable=SC2154 case "$result" in - [Yy]) - msg "Great, continuing..." - _disk="$(jq '.item' "$_disk" | tr -d "\"")" - _disk_serial="$(udevadm info --query=all --name="$_disk" | grep ID_SERIAL= | awk 'BEGIN{FS="="}{print $2}')" - case "$_disk" in - "nvme"*) - _nix_disk="nvme-$_disk_serial" - ;; - "sd"*) - _nix_disk="ata-$_disk_serial" - ;; - *) - die "Disk with name '$_disk' and serial '$_disk_serial' not yet supported!" - ;; - esac - export NIX_DISK="$_nix_disk" + [Yy]) + msg "Great, continuing..." + _disk="$(jq '.item' "$_disk" | tr -d '"')" + _disk_serial="$(udevadm info --query=all --name="$_disk" | grep ID_SERIAL= | awk 'BEGIN{FS="="}{print $2}')" + case "$_disk" in + "nvme"*) + _nix_disk="nvme-$_disk_serial" + ;; + "sd"*) + _nix_disk="ata-$_disk_serial" ;; *) - msg "Sure, keep your data" - exit 1 + die "Disk with name '$_disk' and serial '$_disk_serial' not yet supported!" ;; + esac + export NIX_DISK="$_nix_disk" + ;; + *) + msg "Sure, keep your data" + exit 1 + ;; esac fi if ! [ "$ACTIVATE_TO_SETUP" ] && ! [ "$INSTALL" ]; then readp "Do you want to continue with nixos-install after activation? [N/y]: " result case $result in - [Yy]) - export ACTIVATE_TO_SETUP=yes - ;; - *) - export ACTIVATE_TO_SETUP=no - ;; + [Yy]) + export ACTIVATE_TO_SETUP=yes + ;; + *) + export ACTIVATE_TO_SETUP=no + ;; esac fi if ! [ "$INSTALL_TO_SETUP" ] && [ "$INSTALL" ]; then readp "Do you want to continue with nixos-install after disk formatting? [N/y]: " result case $result in - [Yy]) - export INSTALL_TO_SETUP=yes - ;; - *) - export INSTALL_TO_SETUP=no - ;; + [Yy]) + export INSTALL_TO_SETUP=yes + ;; + *) + export INSTALL_TO_SETUP=no + ;; esac fi if ! [ "$SETUP_TO_CONFIG_SETUP" ]; then readp "Do you want to continue with the user configuration setup after setup? [N/y]: " result case $result in - [Yy]) - export SETUP_TO_CONFIG_SETUP=yes - ;; - *) - export SETUP_TO_CONFIG_SETUP=no - ;; + [Yy]) + export SETUP_TO_CONFIG_SETUP=yes + ;; + *) + export SETUP_TO_CONFIG_SETUP=no + ;; esac fi - export NIX_ENVIRONMENT_VARIABLES_SET="set"; + export NIX_ENVIRONMENT_VARIABLES_SET="set" fi # vim: ft=sh |