nixPrepare.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env bash
  2. WIFI=""
  3. while [[ ! $WIFI =~ [yYnN] ]]; do
  4. read -p "Setup wifi? [Y/n] " WIFI
  5. if [[ -z $WIFI ]]; then WIFI=Y; fi
  6. done
  7. if [[ $WIFI =~ [Yy] ]]; then
  8. read -p "Wifi - SSID: " SSID
  9. read -s -p "Wifi - PSK: " PSK
  10. echo
  11. read -p "Wifi - Interface: [auto]" INTERFACE
  12. if [[ -z $INTERFACE || $INTERFACE == "auto" ]]; then
  13. INTERFACE=$(iwconfig 2>/dev/null | grep "^\S" | awk '{print $1}')
  14. fi
  15. if [[ -z $SSID ]]; then
  16. echo "SSID is missing"
  17. exit 1
  18. fi
  19. if [[ -z $INTERFACE ]]; then
  20. echo "Could not get wiresless interface"
  21. exit 1
  22. fi
  23. for PID in $(pidof wpa_supplicant); do
  24. echo "Killing existing wpa_supplicant $PID"
  25. sudo kill -9 $PID
  26. sudo ip a flush dev $INTERFACE
  27. done
  28. echo "network={" > wpa_supplicant.conf
  29. echo " ssid=\"$SSID\"" >> wpa_supplicant.conf
  30. if [[ ! -z $PSK ]]; then
  31. echo " psk=\"$PSK\"" >> wpa_supplicant.conf
  32. fi
  33. echo "}" >> wpa_supplicant.conf
  34. sudo wpa_supplicant -B -c wpa_supplicant.conf -i $INTERFACE
  35. for i in {1..10}; do
  36. ping -c 1 -w 1 1.1.1.1 > /dev/null 2>&1 && break
  37. done
  38. fi
  39. if ! ping -c 1 -w 1 1.1.1.1 > /dev/null 2>&1; then
  40. echo "No internet connection"
  41. exit 1
  42. fi
  43. echo "Checking out nixFlake"
  44. nix