diff --git a/Amelia.sh b/Amelia.sh index 4abf30d..f8d3f32 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # Source: https://gitlab.com/prism7/archery -# Version: 9.5.0 +# Version: 9.5.1 set -euo pipefail ################################################################################################### @@ -823,6 +823,8 @@ Enter a username: " ==> " USERNAME echo + USERNAME="${USERNAME,,}" + if [[ -z "${USERNAME}" ]]; then sleep 0.2 RED " @@ -831,14 +833,6 @@ Enter a username: " ---------------------------------------------" reload return 1 - elif [[ "${USERNAME}" =~ [[:upper:]] ]]; then - sleep 0.2 - RED " - ------------------------------------------------------ - ### ${yellow}Uppercase is not allowed. Please try again.. ${red}### - ------------------------------------------------------" - reload - return 1 fi BLUE " @@ -2725,6 +2719,30 @@ Enter a number: " esac } ################################################################################################### +ask_optm() { + + sleep 0.2 + YELLOW " + + + > Display available Optimizations ? [y/N]" + BLUE " + + +Enter [y/N]: " + read -r -p " +==> " askoptm + + askoptm="${askoptm:-n}" + askoptm="${askoptm,,}" + + if [[ "${askoptm}" == "n" ]]; then + skip + else + return 0 + fi +} +################################################################################################### cust_kern_param() { sleep 0.2 @@ -2917,19 +2935,13 @@ Enter your Country Code, ie:${nc} ${cyan}US ${bwhite}(empty to skip)${blue}: " read -r -p " ==> " REGDOM + REGDOM="${REGDOM^^}" + if [[ -z "${REGDOM}" ]]; then skip elif [[ "${REGDOM}" == "l" ]]; then sed 's|^#WIRELESS_REGDOM=||g' /etc/conf.d/wireless-regdom |sed 's|"||g'| less return 1 - elif [[ "${REGDOM}" =~ [[:lower:]] ]]; then - sleep 0.2 - RED " - ------------------------------------------------------ - ### ${yellow}Lowercase is not allowed. Please try again.. ${red}### - ------------------------------------------------------" - reload - return 1 elif ! grep \""${REGDOM}"\" /etc/conf.d/wireless-regdom > "${void}" 2>&1 ; then invalid return 1 @@ -4620,8 +4632,27 @@ Enter [Y/n]: " Enter password: " read -r -p " ==> " CRYPTPASS - line2 + sleep 0.2 + YELLOW " + > Verify your ${nc}LUKS ${yellow}encryption password: " + BLUE " + + +Re-enter password: " + read -r -p " +==> " CRYPTPASS2 + + if [[ "${CRYPTPASS}" != "${CRYPTPASS2}" ]]; then + sleep 0.2 + RED " + --------------------------------------------------- + ### ${yellow}Passwords don't match. Please try again.. ${red}### + ---------------------------------------------------" + reload + return 1 + fi + line2 sleep 0.2 YELLOW " > Enter a name for your Encrypted ${roottype} Partition: " @@ -4633,6 +4664,8 @@ Enter a name: " ==> " ENCROOT echo + ENCROOT="${ENCROOT,,}" + if [[ -z "${ENCROOT}" ]]; then sleep 0.2 RED " @@ -4641,14 +4674,6 @@ Enter a name: " -----------------------------------------" reload return 1 - elif [[ "${ENCROOT}" =~ [[:upper:]] ]]; then - sleep 0.2 - RED " - ------------------------------------------------------ - ### ${yellow}Uppercase is not allowed. Please try again.. ${red}### - ------------------------------------------------------" - reload - return 1 elif [[ -n "${ENCROOT}" ]]; then sleep 0.2 NC " @@ -4691,6 +4716,7 @@ Enter a name: " read -r -p " ==> " ENCRHOME + ENCRHOME="${ENCRHOME,,}" echo if [[ -z "${ENCRHOME}" ]]; then sleep 0.2 @@ -4700,14 +4726,6 @@ Enter a name: " -----------------------------------------" reload return 1 - elif [[ "${ENCRHOME}" =~ [[:upper:]] ]]; then - sleep 0.2 - RED " - ------------------------------------------------------ - ### ${yellow}Uppercase is not allowed. Please try again.. ${red}### - ------------------------------------------------------" - reload - return 1 elif [[ -n "${ENCRHOME}" ]]; then sleep 0.2 NC " @@ -4811,18 +4829,21 @@ instl() { if [[ -z "${set_optm_slct}" ]]; then local stage_prompt="Optimizations" completion_err - until cust_kern_param; do : ; done - until sys_watchdog; do : ; done - until gen_optm; do : ; done - if [[ "${hypervisor}" == "none" ]]; then - until ask_wireless_regdom; do : ; done - fi - until systemd_oomd; do : ; done - until irqbalance; do : ; done - until thermald; do : ; done - until rngd; do : ; done - until rtkit; do : ; done - until tlp; do : ; done + until ask_optm; do : ; done + if [[ "${askoptm}" == "y" ]]; then + until cust_kern_param; do : ; done + until sys_watchdog; do : ; done + until gen_optm; do : ; done + if [[ "${hypervisor}" == "none" ]]; then + until ask_wireless_regdom; do : ; done + fi + until systemd_oomd; do : ; done + until irqbalance; do : ; done + until thermald; do : ; done + until rngd; do : ; done + until rtkit; do : ; done + until tlp; do : ; done + fi fi until instl_dsk; do : ; done until ask_crypt; do : ; done @@ -5761,7 +5782,7 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In ################################################################################################### revise() { - reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="") + reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="") export "${reset[@]}" gfxpkgs=() @@ -5785,18 +5806,20 @@ revise() { until print_scan; do : ; done until boot_entr; do : ; done fi + if [[ "${askoptm}" == "y" ]]; then until cust_kern_param; do : ; done until sys_watchdog; do : ; done until gen_optm; do : ; done - if [[ "${hypervisor}" == "none" ]]; then - until ask_wireless_regdom; do : ; done - fi + if [[ "${hypervisor}" == "none" ]]; then + until ask_wireless_regdom; do : ; done + fi until systemd_oomd; do : ; done until irqbalance; do : ; done until thermald; do : ; done until rngd; do : ; done until rtkit; do : ; done until tlp; do : ; done + fi until instl_dsk; do : ; done until ask_crypt; do : ; done if [[ "${swapmode}" == "1" ]]; then @@ -5888,8 +5911,11 @@ luks() { ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS Encryption${nc} ${magenta}]${nc}-------------------------------------${magenta}### + " + YELLOW " + > Initiating Encryption process: " if echo -n "${CRYPTPASS}" | cryptsetup luksFormat --label CRYPTROOT "${root_dev}" > "${void}"; then @@ -6076,7 +6102,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS #-------------------------------------------------------------------------------------------------- sleep 0.2 NC " -==> [${green}Encryption OK${nc}]" +==> [${green}Encryption Completed OK${nc}]" luks_encrypt="ok" sleep 0.2 NC " @@ -6144,16 +6170,16 @@ Enter country name or country code ${bwhite}(Empty for Defaults)${blue}: " - > Enable Pacman's ${nc}'Multilib' ${yellow}repository in the installed system ? [Y/n] " + > Enable Arch's ${nc}'Multilib' ${yellow}repository in the installed system ? [y/N] " BLUE " -Enter [Y/n]: " +Enter [y/N]: " read -r -p " ==> " multilib echo - multilib="${multilib:-y}" + multilib="${multilib:-n}" multilib="${multilib,,}" if [[ "${multilib}" == "y" ]]; then @@ -7373,10 +7399,17 @@ CUSTOMSERV foreign optimizations secboot_sign - completion if [[ -n "${CRYPTPASS}" ]]; then - echo "Your LUKS password is: ${CRYPTPASS}" | tee -a "${log}" > "${void}" + local stage_prompt="Saving LUKS logfile at /home" + if arch-chroot /mnt <<-SAVEPASS > "${void}" 2>&1 2> "${log}" ; then + echo "Your LUKS password is: ${CRYPTPASS}" | tee /home/${USERNAME}/Luks.log || exit +SAVEPASS + stage_ok + else + stage_fail + fi fi + completion installation="ok" umount -R /mnt reboot @@ -7392,7 +7425,7 @@ CUSTOMSERV log="Amelia_log.txt" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" trg="" - vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" 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="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="") + vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" 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="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="") export "${vars[@]}" sleep 0.2 CYANBG "************************************************************************************************* "