From 3eb42130c98486f3f8f1a1a0fe4444a02edb6816 Mon Sep 17 00:00:00 2001 From: Santiago Lo Coco Date: Sun, 2 Jan 2022 16:09:10 -0300 Subject: [PATCH] Add logAndExit() (refactor) --- install.sh | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index a0e4158..b7be9b2 100755 --- a/install.sh +++ b/install.sh @@ -18,9 +18,7 @@ logStep() { checkUefi() { ls /sys/firmware/efi/efivars > /dev/null 2>&1 if [ $? -ge 1 ]; then - whiptail --msgbox "This scripts supports only UEFI boot mode." 0 0 - logStep "checkUefi" - exit 1 + logAndExit "This scripts supports only UEFI boot mode." "checkUefi" fi } @@ -28,18 +26,22 @@ updateSystemClock() { timedatectl set-ntp true } +logAndExit() { + str="${1} Therefore, the installation process will stop, but you can continue where you left off by running:\n\nsh CocoASAIS" + newlines=$(printf "$str" | grep -c $'\n') + chars=$(echo "$str" | wc -c) + height=$(echo "$chars" "$newlines" | awk '{ + x = (($1 - $2 + ($2 * 60)) / 60) + printf "%d", (x == int(x)) ? x : int(x) + 1 + }') + whiptail --msgbox "$str" $((5+height)) 60 + echo "${2}" > CocoASAIS.log + exit 1 +} + exitIfCancel() { if [ $? -eq 1 ]; then - str="${1} Therefore, the installation process will stop, but you can continue where you left off by running:\n\nsh CocoASAIS" - newlines=$(printf "$str" | grep -c $'\n') - chars=$(echo "$str" | wc -c) - height=$(echo "$chars" "$newlines" | awk '{ - x = (($1 - $2 + ($2 * 60)) / 60) - printf "%d", (x == int(x)) ? x : int(x) + 1 - }') - whiptail --msgbox "$str" $((5+height)) 60 - echo "${2}" > CocoASAIS.log - exit 1 + logAndExit "$@" fi } @@ -59,11 +61,8 @@ partDisks() { calcHeightAndRun "whiptail --msgbox \"You will partition the disk yourself with gdisk and then, when finished, you will continue with the installation.\" HEIGHT 62 3>&1 1>&2 2>&3" gdisk $disk parts=$(lsblk $disk -nl | wc -l) - if [ $parts -eq 1 ]; then - whiptail --msgbox "You must at least create boot and root partitions." 0 0 - logStep "partDisks" - exit 1 - fi + [ $parts -eq 1 ] && logAndExit "You must at least create boot and root partitions." "partDisks" + # TODO: Ask for home partition formatOptions $(lsblk ${disk} -pnlo NAME,SIZE,MOUNTPOINTS | sed -n '2~1p') result=$(whiptail --title "Select the boot partition." --menu "" 0 0 0 "${options[@]}" 3>&1 1>&2 2>&3) @@ -140,9 +139,7 @@ installPackage() { runInChroot "sudo -u $username paru -S --needed --noconfirm --skipreview ${1}" 2>&1 | debug ;; ?) - whiptail --msgbox "INSTALL must be A, B or C in packages.csv file." 0 0 - logStep "${3}" - exit 1 + logAndExit "INSTALL must be A, B or C in packages.csv file." "${3}" ;; esac exitIfCancel "Package installation failed." "${3}"