From 9f192bb1b5b17d82a72cd4d05f12c2407f51dd61 Mon Sep 17 00:00:00 2001 From: elementrick Date: Fri, 20 Sep 2024 20:07:35 +0000 Subject: [PATCH] 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 --- Amelia.sh | 80 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/Amelia.sh b/Amelia.sh index 58b5520..83adcc2 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -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=""