From 80df8ba1b36bcac4905919d0ff012b7ae099769d Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 7 Oct 2023 15:38:22 -0400 Subject: guix-strap --- guix-strap/guix-partition | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 guix-strap/guix-partition (limited to 'guix-strap/guix-partition') diff --git a/guix-strap/guix-partition b/guix-strap/guix-partition new file mode 100755 index 0000000..184ea96 --- /dev/null +++ b/guix-strap/guix-partition @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +set -o emacs; + +CONFIRM="" +DISK="" + +source ./guix-log +source ./guix-env + +EVENT "Partitioning disks" + +confirm() { + if [ "$CONFIRM" == "y" ]; then + exit 0 + fi + read -p "Are you sure: ($1)? [y/N] " CONFIRM + if [ "$CONFIRM" == "y" ]; then + exit 0 + else + exit 1 + fi +} + +check_disk() { + lsblk $1 &> /dev/null || exit 1 + FS=$(df $1 | tail -n 1 | awk '{print $1}') + if [ "$FS" == "none" ]; then + exit 0 + else + exit 1 + fi +} + +get_disk() { + CONFIRM="" + read -ep "Enter disk (e.g. /dev/sda): " DISK + if [ ! -b "$DISK" ]; then + ERROR "$DISK: file does not exist" + get_disk + return + fi + (check_disk "$DISK"); + if [ "$?" -ne 0 ]; then + ERROR "$DISK: not a valid disk" + get_disk + return + fi + (confirm "$DISK"); + if [ "$?" -ne 0 ]; then + get_disk + fi +} + +get_disk + +EVENT "Partitioning disks with fdisk..." + +fdisk "$DISK" <> ./guix-env + +EVENT "Disks have been successfully partitioned on $DISK" -- cgit v1.2.3-freya