Add: Now the installer specifically informs the user if the installation disk has been Auto-Formatted by the 'Smart Partitioning' or 'Partitioning Presets' function

Change: Running 'pacstrap' now ommits the '-i' flag, to speed up the whole process
Change: 'Automatic Partitioning' stage has been revised to ommit an unnecessary repeat of the 'Sanity Check' stage
Change: Now, when the Installer aborts, it automatically unmounts all/any mounted partitions, for convenience
Remove: 'vorbisgain' package has been removed from the 'Minimal Plasma' setup, in compliance with Arch's repos
Change: 'LDFLAGS' & 'RUSTFLAGS' configuration has been removed from the 'makepkgd.conf' drop-in configuration file at /etc/makepkg.conf.d/
Change: A few Prompts have been edited, to provide better aesthetics
Change: Some minor indentation
This commit is contained in:
elementrick 2024-09-20 20:07:35 +00:00
parent 8d2217a137
commit 9f192bb1b5

View file

@ -1,7 +1,7 @@
#!/bin/bash
# Amelia Installer
# Version: 7.4
# Version: 7.5
set -euo pipefail
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
@ -311,9 +311,13 @@ cnfg() {
sleep 0.2
line3
MAGENTABG "------------------------------------------------------------------------------------------------- "
MAGENTABG " ### Configuring... ### "
MAGENTABG " ### Configuring ### "
MAGENTABG "------------------------------------------------------------------------------------------------- "
echo
line2
YELLOWL "
... Please Wait ...
"
sleep 0.2
}
completion() {
@ -335,6 +339,7 @@ failure() {
REDBG " "
REDBG "************************************************************************************************* "
line3
umount -R /mnt
exit
}
# END PROMPT FUNCTIONS
@ -495,9 +500,9 @@ ${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}M
YELLOW "
> Make a selection: "
CYAN "
YELLOWL "
*** ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}'Guided Navigation' ${nc}& ${yellowl}'Smart Partitioning' ${nc}functions ${cyan}***
>>> ${nc}Select ${bwhite}[4] ${nc}to utilize ${yellowl}Guided Navigation ${nc}& ${yellowl}Smart Partitioning ${nc}functions
"
NC "
@ -2607,11 +2612,17 @@ Enter a Preset number ${bwhite}(empty to skip)${blue}: "
read -r -p "
==> " preset
echo
if [[ "${preset}" =~ ^(1|2|3|4)$ ]]; then
presetpart="y"
fi
}
###################################################################################################
auto_part() {
slct_autoprt="yes"
smartpart=""
presetpart=""
local prompt="Disk Partitions"
local stage_prompt="Auto-Partitioning"
sleep 0.2
@ -2628,10 +2639,10 @@ ${magenta}###${nc}---------------------------------${magenta}[ ${bwhite}Automati
line2
if [[ -e "${instl_drive}" && "${use_manpreset}" != "yes" ]]; then
sleep 0.2
RED "
-------------------------------------------------------------------------
### >>> ${yellow}Apply ${nc}'Smart Partitioning' ${yellow}on disk ${nc}'${instl_drive}'${yellow} ? [y/n] ${red}<<< ###
-------------------------------------------------------------------------
NC "
-----------------------------------------------------------------
${yellowl}>>> ${nc}Apply ${bwhite}'Smart Partitioning' ${nc}on disk ${bwhite}'${instl_drive}'${nc} ? [y/n] ${yellowl}<<<${nc}
-----------------------------------------------------------------
"
read -r -p "
==> " smartpart
@ -2778,7 +2789,6 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
partprobe -s "${sgdrive}" > /dev/null 2>&1 || stage_fail
fi
if [[ "${install}" == "yes" ]]; then
autopart="yes"
until sanity_check; do : ; done
else
ok
@ -2801,7 +2811,6 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
partprobe -s "${sgdrive}" > /dev/null 2>&1 || stage_fail
fi
if [[ "${install}" == "yes" ]]; then
autopart="yes"
until sanity_check; do : ; done
else
ok
@ -2822,7 +2831,6 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
partprobe -s "${sgdrive}" > /dev/null 2>&1 || stage_fail
fi
if [[ "${install}" == "yes" ]]; then
autopart="yes"
until sanity_check; do : ; done
else
ok
@ -2847,7 +2855,6 @@ Enter a Custom Percentage number ${nc}e.g. 30 ${bwhite}(empty to skip)${blue}: "
partprobe -s "${sgdrive}" > /dev/null 2>&1 || stage_fail
fi
if [[ "${install}" == "yes" ]]; then
autopart="yes"
until sanity_check; do : ; done
else
ok
@ -3494,11 +3501,16 @@ ${multi_swap}
fi
#--------------------------------------------------------------------------------------------------
if [[ "${sanity}" == "ok" ]]; then
if [[ "${autopart}" == "yes" ]]; then
if [[ "${smartpart}" == "y" ]]; then
sleep 0.2
NC "
==> [${green}Disk ${sgdrive} Smart-Partitioned OK${nc}] "
elif [[ "${presetpart}" == "y" ]]; then
sleep 0.2
NC "
==> [${green}Disk ${sgdrive} Preset-Partitioned OK${nc}] "
fi
sleep 0.2
NC "
@ -3528,25 +3540,24 @@ ${multi_swap}
local prompt="Confirm Disk"
local stage_prompt="Partitioning"
if [[ "${partok}" == "y" ]]; then
ok
return 0
elif [[ "${partok}" == "n" ]]; then
if [[ "${multibooting}" == "n" ]]; then
if [[ "${smartpart}" == "y" ]]; then
process
until manual_part; do : ; done
else
process
if [[ "${slct_autoprt}" != "yes" ]]; then
until auto_part; do : ; done
return 1
else
if [[ "${smartpart}" == "y" ]]; then
process
until manual_part; do : ; done
return 1
fi
else
process
if [[ "${slct_autoprt}" != "yes" ]]; then
until auto_part; do : ; done
else
until manual_part; do : ; done
fi
fi
elif [[ "${multibooting}" == "y" ]]; then
elif [[ "${multibooting}" == "y" ]]; then
process
until manual_part; do : ; done
fi
@ -5201,7 +5212,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
network="NetworkManager" ;;
2) # Minimal Plasma & Apps & System optimizations:
deskpkgs="${basepkgs} alsa-firmware alsa-utils arj ark bluedevil breeze-gtk ccache cups-pdf cups-pk-helper dolphin-plugins e2fsprogs efibootmgr exfatprogs fdkaac ffmpegthumbs firefox git glibc-locales gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb kamera kamoso kate kcalc kde-gtk-config kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdeplasma-addons kdesdk-kio kdesdk-thumbnailers kdialog keditbookmarks kget kimageformats kinit kio-admin kio-gdrive kio-zeroconf kompare konsole kscreen kvantum kwrited libappimage libfido2 libktorrent libmms libnfs libva-utils lirc lrzip lua52-socket lzop mac man-db man-pages mesa-demos mesa-utils mold nano-syntax-highlighting nss-mdns ntfs-3g okular opus-tools p7zip packagekit-qt6 pacman-contrib partitionmanager pbzip2 pdfmixtool pigz pipewire-alsa pipewire-pulse plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-nm plasma-pa plasma-wayland-protocols power-profiles-daemon powerdevil powerline powerline-fonts print-manager python-pyqt6 python-reportlab qbittorrent qt6-imageformats qt6-scxml qt6-virtualkeyboard realtime-privileges reflector rng-tools sddm-kcm skanlite sof-firmware sox spectacle sshfs system-config-printer terminus-font timidity++ ttf-ubuntu-font-family unarchiver unrar unzip usb_modeswitch usbutils vdpauinfo vlc vorbis-tools vorbisgain wget xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-kde zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
deskpkgs="${basepkgs} alsa-firmware alsa-utils arj ark bluedevil breeze-gtk ccache cups-pdf cups-pk-helper dolphin-plugins e2fsprogs efibootmgr exfatprogs fdkaac ffmpegthumbs firefox git glibc-locales gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb kamera kamoso kate kcalc kde-gtk-config kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdeplasma-addons kdesdk-kio kdesdk-thumbnailers kdialog keditbookmarks kget kimageformats kinit kio-admin kio-gdrive kio-zeroconf kompare konsole kscreen kvantum kwrited libappimage libfido2 libktorrent libmms libnfs libva-utils lirc lrzip lua52-socket lzop mac man-db man-pages mesa-demos mesa-utils mold nano-syntax-highlighting nss-mdns ntfs-3g okular opus-tools p7zip packagekit-qt6 pacman-contrib partitionmanager pbzip2 pdfmixtool pigz pipewire-alsa pipewire-jack pipewire-pulse plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-nm plasma-pa plasma-wayland-protocols power-profiles-daemon powerdevil powerline powerline-fonts print-manager python-pyqt6 python-reportlab qbittorrent qt6-imageformats qt6-scxml qt6-virtualkeyboard realtime-privileges reflector rng-tools sddm-kcm skanlite sof-firmware sox spectacle sshfs system-config-printer terminus-font timidity++ ttf-ubuntu-font-family unarchiver unrar unzip usb_modeswitch usbutils vdpauinfo vlc vorbis-tools wget xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-kde zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
3) # Gnome Desktop:
deskpkgs="${basepkgs} gnome networkmanager"
@ -5210,7 +5221,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
network="NetworkManager" ;;
4) # Minimal Gnome & Apps & System optimizations:
deskpkgs="${basepkgs} evince file-roller gdm gnome-calculator gnome-clocks gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-session gnome-shell-extensions gnome-shell-extension-appindicator gnome-system-monitor gnome-text-editor gnome-tweaks gvfs gvfs-afc gvfs-mtp loupe malcontent nautilus networkmanager power-profiles-daemon simple-scan sushi system-config-printer xdg-desktop-portal-gnome xdg-user-dirs-gtk alsa-firmware alsa-utils ccache cups-pdf e2fsprogs efibootmgr exfatprogs fdkaac git glib2-devel glibc-locales gnome-browser-connector gparted gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb libfido2 libva-utils lrzip mac man-db man-pages meld mesa-utils mold nano-syntax-highlighting nss-mdns ntfs-3g p7zip pacman-contrib pbzip2 pdfmixtool pigz pipewire-alsa pipewire-pulse powerline powerline-fonts qbittorrent realtime-privileges reflector rng-tools sof-firmware sox terminus-font ttf-ubuntu-font-family unrar unzip usb_modeswitch usbutils vdpauinfo vlc wget zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
deskpkgs="${basepkgs} evince file-roller gdm gnome-calculator gnome-clocks gnome-console gnome-control-center gnome-disk-utility gnome-keyring gnome-menus gnome-session gnome-shell-extensions gnome-shell-extension-appindicator gnome-system-monitor gnome-text-editor gnome-tweaks gvfs gvfs-afc gvfs-mtp loupe malcontent nautilus networkmanager power-profiles-daemon simple-scan sushi system-config-printer xdg-desktop-portal-gnome xdg-user-dirs-gtk alsa-firmware alsa-utils ccache cups-pdf e2fsprogs efibootmgr exfatprogs fdkaac git glib2-devel glibc-locales gnome-browser-connector gparted gst-libav gst-plugin-libcamera gst-plugin-msdk gst-plugin-opencv gst-plugin-pipewire gst-plugin-qmlgl gst-plugin-va gst-plugin-wpe gst-plugins-ugly gstreamer-vaapi htop icoutils ipp-usb libfido2 libva-utils lrzip mac man-db man-pages meld mesa-utils mold nano-syntax-highlighting nss-mdns ntfs-3g p7zip pacman-contrib pbzip2 pdfmixtool pigz pipewire-alsa pipewire-jack pipewire-pulse powerline powerline-fonts qbittorrent realtime-privileges reflector rng-tools sof-firmware sox terminus-font ttf-ubuntu-font-family unrar unzip usb_modeswitch usbutils vdpauinfo vlc wget zip zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting ${nrg_plc}" ;;
5) # Xfce Desktop:
deskpkgs="${basepkgs} xfce4 lightdm-gtk-greeter network-manager-applet"
@ -5256,7 +5267,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
fi ;;
esac
if pacstrap -K -i /mnt ${deskpkgs} ; then
if pacstrap -K /mnt ${deskpkgs} ; then
if [[ "${fs}" == "2" ]]; then
genfstab -t PARTUUID /mnt >> /mnt/etc/fstab || err_abort
sleep 0.2
@ -6026,10 +6037,11 @@ NRG
MKINITCPIO_CONF
mkinitcpio -P || exit
cat <<-MAKEPKG_CONF > /etc/makepkg.conf.d/makepkgd.conf || exit
CFLAGS="-march=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs,-fuse-ld=mold"
RUSTFLAGS="-C force-frame-pointers=yes -C opt-level=3 -C target-cpu=native -C link-arg=-fuse-ld=mold"
MAKEFLAGS="-j$(nproc)"
CFLAGS="-march=native -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
MAKEFLAGS="-j4"
BUILDENV=(!distcc color ccache check !sign)
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
COMPRESSGZ=(pigz -c -f -n)
@ -6230,7 +6242,7 @@ OPTIMIZED_CONF
sgdrive=""
cgdrive=""
sep_home=""
autopart=""
presetpart=""
prcnt=""
roottype=""
stage_prompt=""