diff --git a/Amelia.sh b/Amelia.sh index 90ef53c..9932ffd 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # https://gitlab.com/prism7/archery -# Version: 8.4.3 +# Version: 8.5.0 set -euo pipefail ################################################################################################### @@ -142,6 +142,18 @@ reboot() { systemctl reboot fi } +force_reboot() { + sleep 0.2 + RED " + ---------------------------------------------------------------- + ### ${yellow}A reboot is mandatory after performing LUKS encryption ${red}### + ---------------------------------------------------------------- + + + " + sleep 5 + systemctl reboot +} line2() { printf '\n\n' } @@ -326,6 +338,9 @@ failure() { REDBG "************************************************************************************************* " line3 umount -R /mnt > /dev/null 2>&1 + if [[ "${luks_root}" == "ok" || "${luks_swap}" == "ok" || "${luks_home}" == "ok" ]] && [[ "${installation}" != "ok" ]]; then + force_reboot + fi exit } # END PROMPT FUNCTIONS @@ -1388,14 +1403,14 @@ Enter Swap size ${bwhite}(in GB)${blue}: " reload line2 return 1 - elif [[ "${swapsize}" =~ [[:digit:]] ]]; then + elif [[ "${swapsize}" == [[:digit:]] ]]; then ok else sleep 0.2 RED " - ------------------------------------------- - ### ${yellow}Please use only digits as a value ${red}### - -------------------------------------------" + --------------------------------------------- + ### ${yellow}Please use only integers as a value ${red}### + ---------------------------------------------" reload line2 return 1 @@ -2703,7 +2718,7 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: " fi if [[ "${preset}" == "3" || "${preset}" == "4" ]] ; then - if [[ "${prcnt}" == [[:alpha:]] ]]; then + if [[ "${prcnt}" =~ [[:alpha:]] ]]; then sleep 0.2 RED " ------------------------------------------- @@ -4994,6 +5009,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS NC " ==> [${green}Encrypted /Root OK${nc}] " + luks_root="ok" #------------------------------------------------------------------------------------------ elif [[ "${fs}" == "2" ]]; then mkfs.btrfs -f -L Root /dev/mapper/"${ENCROOT}" > /dev/null 2> amelia_log.txt || err_abort @@ -5021,6 +5037,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS NC " ==> [${green}Encrypted /@ OK${nc}] " + luks_root="ok" fi else line2 @@ -5042,6 +5059,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS NC " ==> [${green}Encrypted /Swap OK${nc}] " + luks_swap="ok" else line2 err_try @@ -5065,6 +5083,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS NC " ==> [${green}Encrypted /Home OK${nc}] " + luks_home="ok" else line2 err_try @@ -6133,6 +6152,7 @@ NETWORK mkinitcpio_preset secboot_sign completion + installation="ok" fi #-------------------------------------------------------------------------------------------------- # 'Custom System' Configuration: @@ -6190,6 +6210,7 @@ CUSTOMSERV mkinitcpio_preset secboot_sign completion + installation="ok" fi #-------------------------------------------------------------------------------------------------- # Minimal Plasma/Gnome Optimized-System Configuration: @@ -6378,6 +6399,7 @@ MULTILIB mkinitcpio_preset secboot_sign completion + installation="ok" fi umount -R /mnt reboot @@ -6390,7 +6412,7 @@ MULTILIB tty="$(tty)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" trg="" - vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgapkgs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" parallel="" parallelnmbr="" multilib="" nvname="" nogsp="") + vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" vgapkgs="" vgacount="" vgacard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vgaconf="" vga_conf="" vga_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" packages="" efi_entr_del="" wrlss_rgd="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" vga_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" revision="" greeternmbr="" cust_bootopts="" bluetooth="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" vga_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" use_manpreset="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" uki="" ukify="" slct_autoprt="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" parallel="" parallelnmbr="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="") export "${vars[@]}" clear first_check