Add: Now, when in 'Auto-Navigation' the user can skip all Optimizations offered by installer

Change: Edit prompts for aesthetic reasons
Change: Asking to set 'username' now defaults to lowercase, so issuing a warning will not be needed
Change: Asking to set 'Wireless Regulatory Domain Country Code' now defaults to uppercase, so issuing a warning will not be needed
Add: Verification has been added when setting the LUKS encryption password
Change: Encrypted /Root Partition name now defaults to lowercase, so issuing a warning will not be needed
Change: Encrypted /Home Partition name now defaults to lowercase, so issuing a warning will not be needed
Change: Asking to enable Arch's 'Multilib' repo now defaults to 'No'
Remove: Saving LUKS encryption password to '.log' file has been removed
Add: User's LUKS password will be exported to user's /home directory
This commit is contained in:
Jane Doe
2025-09-07 17:47:19 +03:00
parent 6b391470a1
commit 0f123bd728
+90 -57
View File
@@ -2,7 +2,7 @@
# Amelia Installer # Amelia Installer
# Source: https://gitlab.com/prism7/archery # Source: https://gitlab.com/prism7/archery
# Version: 9.5.0 # Version: 9.5.1
set -euo pipefail set -euo pipefail
################################################################################################### ###################################################################################################
@@ -823,6 +823,8 @@ Enter a username: "
==> " USERNAME ==> " USERNAME
echo echo
USERNAME="${USERNAME,,}"
if [[ -z "${USERNAME}" ]]; then if [[ -z "${USERNAME}" ]]; then
sleep 0.2 sleep 0.2
RED " RED "
@@ -831,14 +833,6 @@ Enter a username: "
---------------------------------------------" ---------------------------------------------"
reload reload
return 1 return 1
elif [[ "${USERNAME}" =~ [[:upper:]] ]]; then
sleep 0.2
RED "
------------------------------------------------------
### ${yellow}Uppercase is not allowed. Please try again.. ${red}###
------------------------------------------------------"
reload
return 1
fi fi
BLUE " BLUE "
@@ -2725,6 +2719,30 @@ Enter a number: "
esac 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() { cust_kern_param() {
sleep 0.2 sleep 0.2
@@ -2917,19 +2935,13 @@ Enter your Country Code, ie:${nc} ${cyan}US ${bwhite}(empty to skip)${blue}: "
read -r -p " read -r -p "
==> " REGDOM ==> " REGDOM
REGDOM="${REGDOM^^}"
if [[ -z "${REGDOM}" ]]; then if [[ -z "${REGDOM}" ]]; then
skip skip
elif [[ "${REGDOM}" == "l" ]]; then elif [[ "${REGDOM}" == "l" ]]; then
sed 's|^#WIRELESS_REGDOM=||g' /etc/conf.d/wireless-regdom |sed 's|"||g'| less sed 's|^#WIRELESS_REGDOM=||g' /etc/conf.d/wireless-regdom |sed 's|"||g'| less
return 1 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 elif ! grep \""${REGDOM}"\" /etc/conf.d/wireless-regdom > "${void}" 2>&1 ; then
invalid invalid
return 1 return 1
@@ -4620,8 +4632,27 @@ Enter [Y/n]: "
Enter password: " Enter password: "
read -r -p " read -r -p "
==> " CRYPTPASS ==> " 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 sleep 0.2
YELLOW " YELLOW "
> Enter a name for your Encrypted ${roottype} Partition: " > Enter a name for your Encrypted ${roottype} Partition: "
@@ -4633,6 +4664,8 @@ Enter a name: "
==> " ENCROOT ==> " ENCROOT
echo echo
ENCROOT="${ENCROOT,,}"
if [[ -z "${ENCROOT}" ]]; then if [[ -z "${ENCROOT}" ]]; then
sleep 0.2 sleep 0.2
RED " RED "
@@ -4641,14 +4674,6 @@ Enter a name: "
-----------------------------------------" -----------------------------------------"
reload reload
return 1 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 elif [[ -n "${ENCROOT}" ]]; then
sleep 0.2 sleep 0.2
NC " NC "
@@ -4691,6 +4716,7 @@ Enter a name: "
read -r -p " read -r -p "
==> " ENCRHOME ==> " ENCRHOME
ENCRHOME="${ENCRHOME,,}"
echo echo
if [[ -z "${ENCRHOME}" ]]; then if [[ -z "${ENCRHOME}" ]]; then
sleep 0.2 sleep 0.2
@@ -4700,14 +4726,6 @@ Enter a name: "
-----------------------------------------" -----------------------------------------"
reload reload
return 1 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 elif [[ -n "${ENCRHOME}" ]]; then
sleep 0.2 sleep 0.2
NC " NC "
@@ -4811,18 +4829,21 @@ instl() {
if [[ -z "${set_optm_slct}" ]]; then if [[ -z "${set_optm_slct}" ]]; then
local stage_prompt="Optimizations" local stage_prompt="Optimizations"
completion_err completion_err
until cust_kern_param; do : ; done until ask_optm; do : ; done
until sys_watchdog; do : ; done if [[ "${askoptm}" == "y" ]]; then
until gen_optm; do : ; done until cust_kern_param; do : ; done
if [[ "${hypervisor}" == "none" ]]; then until sys_watchdog; do : ; done
until ask_wireless_regdom; do : ; done until gen_optm; do : ; done
fi if [[ "${hypervisor}" == "none" ]]; then
until systemd_oomd; do : ; done until ask_wireless_regdom; do : ; done
until irqbalance; do : ; done fi
until thermald; do : ; done until systemd_oomd; do : ; done
until rngd; do : ; done until irqbalance; do : ; done
until rtkit; do : ; done until thermald; do : ; done
until tlp; do : ; done until rngd; do : ; done
until rtkit; do : ; done
until tlp; do : ; done
fi
fi fi
until instl_dsk; do : ; done until instl_dsk; do : ; done
until ask_crypt; do : ; done until ask_crypt; do : ; done
@@ -5761,7 +5782,7 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
################################################################################################### ###################################################################################################
revise() { 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[@]}" export "${reset[@]}"
gfxpkgs=() gfxpkgs=()
@@ -5785,18 +5806,20 @@ revise() {
until print_scan; do : ; done until print_scan; do : ; done
until boot_entr; do : ; done until boot_entr; do : ; done
fi fi
if [[ "${askoptm}" == "y" ]]; then
until cust_kern_param; do : ; done until cust_kern_param; do : ; done
until sys_watchdog; do : ; done until sys_watchdog; do : ; done
until gen_optm; do : ; done until gen_optm; do : ; done
if [[ "${hypervisor}" == "none" ]]; then if [[ "${hypervisor}" == "none" ]]; then
until ask_wireless_regdom; do : ; done until ask_wireless_regdom; do : ; done
fi fi
until systemd_oomd; do : ; done until systemd_oomd; do : ; done
until irqbalance; do : ; done until irqbalance; do : ; done
until thermald; do : ; done until thermald; do : ; done
until rngd; do : ; done until rngd; do : ; done
until rtkit; do : ; done until rtkit; do : ; done
until tlp; do : ; done until tlp; do : ; done
fi
until instl_dsk; do : ; done until instl_dsk; do : ; done
until ask_crypt; do : ; done until ask_crypt; do : ; done
if [[ "${swapmode}" == "1" ]]; then if [[ "${swapmode}" == "1" ]]; then
@@ -5888,8 +5911,11 @@ luks() {
${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS Encryption${nc} ${magenta}]${nc}-------------------------------------${magenta}### ${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 if echo -n "${CRYPTPASS}" | cryptsetup luksFormat --label CRYPTROOT "${root_dev}" > "${void}"; then
@@ -6076,7 +6102,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}LUKS
#-------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------
sleep 0.2 sleep 0.2
NC " NC "
==> [${green}Encryption OK${nc}]" ==> [${green}Encryption Completed OK${nc}]"
luks_encrypt="ok" luks_encrypt="ok"
sleep 0.2 sleep 0.2
NC " 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 " BLUE "
Enter [Y/n]: " Enter [y/N]: "
read -r -p " read -r -p "
==> " multilib ==> " multilib
echo echo
multilib="${multilib:-y}" multilib="${multilib:-n}"
multilib="${multilib,,}" multilib="${multilib,,}"
if [[ "${multilib}" == "y" ]]; then if [[ "${multilib}" == "y" ]]; then
@@ -7373,10 +7399,17 @@ CUSTOMSERV
foreign foreign
optimizations optimizations
secboot_sign secboot_sign
completion
if [[ -n "${CRYPTPASS}" ]]; then 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 fi
completion
installation="ok" installation="ok"
umount -R /mnt umount -R /mnt
reboot reboot
@@ -7392,7 +7425,7 @@ CUSTOMSERV
log="Amelia_log.txt" log="Amelia_log.txt"
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
trg="" 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[@]}" export "${vars[@]}"
sleep 0.2 sleep 0.2
CYANBG "************************************************************************************************* " CYANBG "************************************************************************************************* "