diff options
-rwxr-xr-x[l---------] | public/nixos/burn.sh | 49 | ||||
-rw-r--r--[-rwxr-xr-x] | scripts/burn-nixos.sh | 4 |
2 files changed, 50 insertions, 3 deletions
diff --git a/public/nixos/burn.sh b/public/nixos/burn.sh index 3b029a1..85ce6cd 120000..100755 --- a/public/nixos/burn.sh +++ b/public/nixos/burn.sh @@ -1 +1,48 @@ -../../scripts/burn-nixos.sh
\ No newline at end of file +#!/usr/bin/env bash +set -Eeuo pipefail + +usage() { + red "Missing argument $1.\n" + cat <<EOF +Usage: + burn.sh <NIXOS_URL> <USB_STICK> + + Arguments: + NIXOS_URL Download URL for NixOS ISO to be installed. Can be found at https://nixos.org/nixos/download.html + USB_STICK File descriptor of USB stick where to burn the ISO into. Use lsblk or similar tools to get it's name. + +Examples: + Download NixOS 19.03 x86_64 minimal and burn it into stick on /dev/sdb: + NIXOS_URL='https://releases.nixos.org/nixos/19.03/nixos-19.03.172764.50d5d73e22b/nixos-minimal-19.03.172764.50d5d73e22b-x86_64-linux.iso' + burn.sh "\$NIXOS_URL" /dev/sdb +EOF +} + +NIXOS_URL="${1:-}" +USB_STICK="${2:-}" +ISO_PATH='/tmp/nixos.iso' + +[[ -z "${NIXOS_URL}" ]] && { + usage 'NIXOS_URL' + exit 2 +} + +[[ -z "${USB_STICK}" ]] && { + usage 'USB_STICK' + exit 2 +} + +yellow "Downloading NixOS ISO..." +wget -cO "${ISO_PATH}" "${NIXOS_URL}" +wget -cO "${ISO_PATH}.sha256" "${NIXOS_URL}.sha256" +diff <(sha256sum "${ISO_PATH}" | awk '{print $1}') <(awk '{print $1}' < "${ISO_PATH}.sha256") || { + red "SHA256 didn't match!" + exit 1 +} +green "Done. SHA256 match." + +yellow "Writing ISO image to ${USB_STICK}. We'll need sudo for it..." +umount "${USB_STICK}1" ||: +blue "$(du -hs /tmp/nixos.iso)" +sudo dd if="${ISO_PATH}" of="${USB_STICK}" status=progress +green "Done. You can remove the USB stick ${USB_STICK} with no unmounting required." diff --git a/scripts/burn-nixos.sh b/scripts/burn-nixos.sh index b88ba79..85ce6cd 100755..100644 --- a/scripts/burn-nixos.sh +++ b/scripts/burn-nixos.sh @@ -5,7 +5,7 @@ usage() { red "Missing argument $1.\n" cat <<EOF Usage: - burn-nixos.sh <NIXOS_URL> <USB_STICK> + burn.sh <NIXOS_URL> <USB_STICK> Arguments: NIXOS_URL Download URL for NixOS ISO to be installed. Can be found at https://nixos.org/nixos/download.html @@ -14,7 +14,7 @@ Usage: Examples: Download NixOS 19.03 x86_64 minimal and burn it into stick on /dev/sdb: NIXOS_URL='https://releases.nixos.org/nixos/19.03/nixos-19.03.172764.50d5d73e22b/nixos-minimal-19.03.172764.50d5d73e22b-x86_64-linux.iso' - burn-nixos.sh "\$NIXOS_URL" /dev/sdb + burn.sh "\$NIXOS_URL" /dev/sdb EOF } |