mirror of
https://gitlab.com/prism7/archery.git
synced 2025-02-15 08:29:17 +01:00
Added 'set -euo pipefail' flag
Set some variables (only to comply with the 'set -u' flag) Replaced some color functions with simple 'echo' commands 'Secure Erasure': Now a prompt informs about the need to reboot system after erasing the disk, which also takes place automatically when done 'chroot_conf' > 'Custom System Configuration': Now when 'grub' is selected, enabling services will take effect only if a(ny) service(s) have been first set to be enabled 'chroot_conf': Renamed a few 'HERE-docs' for clarification 'Select Desktop' > 'Custom System' > 'Custom Packages Setup': Now, if 'lightdm' has been set as a custom package, a prompt will ask you to select between 'lightdm-gtk-greeter' & 'lightdm-slick-greeter' for convenience, and said greeter will be automatically installed and also lightdm automatically configured for said greeter. NOTE: The user only has to set 'lightdm' service to be enabled in next step
This commit is contained in:
parent
f2fd59f82d
commit
a69659a550
1 changed files with 170 additions and 76 deletions
242
Amelia.sh
242
Amelia.sh
|
@ -1,8 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Amelia Installer
|
# Amelia Installer
|
||||||
# Version: 3.3
|
# Version: 3.4
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
# ### COLOR FUNCTIONS ###
|
# ### COLOR FUNCTIONS ###
|
||||||
|
|
||||||
|
@ -261,7 +262,7 @@ first_check (){
|
||||||
REDBG " ----------------------------------------
|
REDBG " ----------------------------------------
|
||||||
### WARNING: High Risk Of Data Loss ###
|
### WARNING: High Risk Of Data Loss ###
|
||||||
----------------------------------------"
|
----------------------------------------"
|
||||||
NC
|
echo
|
||||||
else
|
else
|
||||||
PURPLE "
|
PURPLE "
|
||||||
### The installer must be run as Root (Not 'wheel' group user) "
|
### The installer must be run as Root (Not 'wheel' group user) "
|
||||||
|
@ -386,7 +387,7 @@ ${purple}###${nc} Main Menu ${purple}###${nc}
|
||||||
|
|
||||||
[3] Disk Management
|
[3] Disk Management
|
||||||
|
|
||||||
[4] Start Installation (Auto-Navigated) "
|
[4] Start Installation (${cyan}Auto-Navigation${nc}) "
|
||||||
BLUE "
|
BLUE "
|
||||||
|
|
||||||
|
|
||||||
|
@ -564,7 +565,7 @@ ${purple}###${nc} User Setup ${purple}###${nc}
|
||||||
Enter a username: "
|
Enter a username: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " USERNAME
|
==> " USERNAME
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${USERNAME}" ]]; then
|
if [[ -z "${USERNAME}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -584,7 +585,7 @@ Enter a username: "
|
||||||
Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: "
|
Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " USERPASSWD
|
==> " USERPASSWD
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${USERPASSWD}" ]]; then
|
if [[ -z "${USERPASSWD}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -598,7 +599,7 @@ Enter a password for${nc} ${cyan}"${USERNAME}"${blue}: "
|
||||||
Re-enter${nc} ${cyan}"${USERNAME}"'s ${blue}password: "
|
Re-enter${nc} ${cyan}"${USERNAME}"'s ${blue}password: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " USERPASSWD2
|
==> " USERPASSWD2
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${USERPASSWD}" != "${USERPASSWD2}" ]]; then
|
if [[ "${USERPASSWD}" != "${USERPASSWD2}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -639,7 +640,7 @@ Enter a password for the${nc}${cyan} Root ${blue}user: "
|
||||||
Re-enter${nc} ${cyan}Root ${blue}user's password: "
|
Re-enter${nc} ${cyan}Root ${blue}user's password: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " ROOTPASSWD2
|
==> " ROOTPASSWD2
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${ROOTPASSWD}" != "${ROOTPASSWD2}" ]]; then
|
if [[ "${ROOTPASSWD}" != "${ROOTPASSWD2}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -665,7 +666,7 @@ ${purple}###${nc} Hostname Setup ${purple}###${nc}
|
||||||
Enter a hostname: "
|
Enter a hostname: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " HOSTNAME
|
==> " HOSTNAME
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${HOSTNAME}" ]]; then
|
if [[ -z "${HOSTNAME}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -891,7 +892,7 @@ ${purple}###${nc} Filesystem Selection ${purple}###${nc}
|
||||||
Enter a number: "
|
Enter a number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " fs
|
==> " fs
|
||||||
NC
|
echo
|
||||||
|
|
||||||
case "${fs}" in
|
case "${fs}" in
|
||||||
1)
|
1)
|
||||||
|
@ -1016,7 +1017,7 @@ set_swapsize (){
|
||||||
Enter Swapfile size ${bwhite}(in GiB)${blue}: "
|
Enter Swapfile size ${bwhite}(in GiB)${blue}: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " swapsize
|
==> " swapsize
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${swapsize}" ]]; then
|
if [[ -z "${swapsize}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -1085,7 +1086,7 @@ ${purple}###${nc} Graphics Setup ${purple}###${nc}
|
||||||
|
|
||||||
if [[ "${vendor}" == "Virtual Machine" ]]; then
|
if [[ "${vendor}" == "Virtual Machine" ]]; then
|
||||||
vgaconf="n"
|
vgaconf="n"
|
||||||
NC
|
echo
|
||||||
skip
|
skip
|
||||||
ok
|
ok
|
||||||
return 0
|
return 0
|
||||||
|
@ -1129,7 +1130,7 @@ Enter a number ${bwhite}(empty to skip)${blue}: "
|
||||||
==> " islands
|
==> " islands
|
||||||
if [[ -z "${islands}" ]]; then
|
if [[ -z "${islands}" ]]; then
|
||||||
skip
|
skip
|
||||||
NC
|
echo
|
||||||
elif [[ "${islands}" == "1" ]]; then
|
elif [[ "${islands}" == "1" ]]; then
|
||||||
NC "
|
NC "
|
||||||
|
|
||||||
|
@ -1196,12 +1197,12 @@ Enter a number: "
|
||||||
==> [${green}Turing+ OK${nc}]
|
==> [${green}Turing+ OK${nc}]
|
||||||
"
|
"
|
||||||
else
|
else
|
||||||
NC
|
echo
|
||||||
invalid
|
invalid
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
NC
|
echo
|
||||||
invalid
|
invalid
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
@ -1257,7 +1258,7 @@ Enter a number: "
|
||||||
### ""${vendor}"" Graphics will be automatically configured
|
### ""${vendor}"" Graphics will be automatically configured
|
||||||
"
|
"
|
||||||
elif [[ "${vgaconf}" == "n" ]]; then
|
elif [[ "${vgaconf}" == "n" ]]; then
|
||||||
NC
|
echo
|
||||||
skip
|
skip
|
||||||
else
|
else
|
||||||
invalid
|
invalid
|
||||||
|
@ -1391,11 +1392,11 @@ Enter [y/n]: "
|
||||||
|
|
||||||
==> [${green}Terminal OK${nc}] " ;;
|
==> [${green}Terminal OK${nc}] " ;;
|
||||||
n)
|
n)
|
||||||
NC
|
echo
|
||||||
skip ;;
|
skip ;;
|
||||||
"")
|
"")
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC
|
echo
|
||||||
RED "
|
RED "
|
||||||
[!] Please type 'y' or 'n' to continue "
|
[!] Please type 'y' or 'n' to continue "
|
||||||
reload
|
reload
|
||||||
|
@ -1434,11 +1435,11 @@ Enter [y/n]: "
|
||||||
|
|
||||||
==> [${green}Terminal OK${nc}] " ;;
|
==> [${green}Terminal OK${nc}] " ;;
|
||||||
n)
|
n)
|
||||||
NC
|
echo
|
||||||
skip ;;
|
skip ;;
|
||||||
"")
|
"")
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC
|
echo
|
||||||
RED "
|
RED "
|
||||||
[!] Please type 'y' or 'n' to continue "
|
[!] Please type 'y' or 'n' to continue "
|
||||||
reload
|
reload
|
||||||
|
@ -1495,11 +1496,11 @@ Enter [y/n]: "
|
||||||
|
|
||||||
==> [${green}base-devel OK${nc}] " ;;
|
==> [${green}base-devel OK${nc}] " ;;
|
||||||
n)
|
n)
|
||||||
NC
|
echo
|
||||||
skip ;;
|
skip ;;
|
||||||
"")
|
"")
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC
|
echo
|
||||||
RED "
|
RED "
|
||||||
[!] Please type 'y' or 'n' to continue "
|
[!] Please type 'y' or 'n' to continue "
|
||||||
reload
|
reload
|
||||||
|
@ -1528,11 +1529,11 @@ Enter [y/n]: "
|
||||||
y)
|
y)
|
||||||
add_prmtrs ;;
|
add_prmtrs ;;
|
||||||
n)
|
n)
|
||||||
NC
|
echo
|
||||||
skip ;;
|
skip ;;
|
||||||
"")
|
"")
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC
|
echo
|
||||||
RED "
|
RED "
|
||||||
[!] Please type 'y' or 'n' to continue "
|
[!] Please type 'y' or 'n' to continue "
|
||||||
reload
|
reload
|
||||||
|
@ -1575,6 +1576,59 @@ Enter your packages ${bwhite}(space-seperated)${blue}: "
|
||||||
[!] Please enter package(s) to continue "
|
[!] Please enter package(s) to continue "
|
||||||
reload
|
reload
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
elif [[ "${custompkgs}" =~ "lightdm" ]]; then
|
||||||
|
|
||||||
|
echo
|
||||||
|
sleep 0.5
|
||||||
|
NC "
|
||||||
|
_________________________________
|
||||||
|
|
||||||
|
${purple}###${nc} Lightdm Greeter Selection ${purple}###${nc}
|
||||||
|
"
|
||||||
|
YELLOW "
|
||||||
|
|
||||||
|
> Select a Greeter: "
|
||||||
|
NC "
|
||||||
|
|
||||||
|
[1] Gtk
|
||||||
|
|
||||||
|
[2] Slick "
|
||||||
|
BLUE "
|
||||||
|
|
||||||
|
|
||||||
|
Enter a number: "
|
||||||
|
read -p "
|
||||||
|
==> " greeternmbr
|
||||||
|
|
||||||
|
case "${greeternmbr}" in
|
||||||
|
|
||||||
|
1)
|
||||||
|
greeter="lightdm-gtk-greeter"
|
||||||
|
sleep 0.5
|
||||||
|
NC "
|
||||||
|
|
||||||
|
==> [${green}Lightdm Gtk Greeter OK${nc}] " ;;
|
||||||
|
|
||||||
|
2)
|
||||||
|
greeter="lightdm-slick-greeter"
|
||||||
|
sleep 0.5
|
||||||
|
NC "
|
||||||
|
|
||||||
|
==> [${green}Lightdm Slick Greeter OK${nc}] " ;;
|
||||||
|
|
||||||
|
"")
|
||||||
|
sleep 0.5
|
||||||
|
echo
|
||||||
|
RED "
|
||||||
|
[!] Please make a selection.. "
|
||||||
|
reload
|
||||||
|
return 1 ;;
|
||||||
|
*)
|
||||||
|
invalid
|
||||||
|
return 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
else
|
else
|
||||||
ok
|
ok
|
||||||
fi
|
fi
|
||||||
|
@ -1600,7 +1654,7 @@ Enter your services ${bwhite}(space-seperated)${blue}: "
|
||||||
==> " customservices
|
==> " customservices
|
||||||
|
|
||||||
if [[ -z "${customservices}" ]]; then
|
if [[ -z "${customservices}" ]]; then
|
||||||
NC
|
echo
|
||||||
skip
|
skip
|
||||||
else
|
else
|
||||||
ok
|
ok
|
||||||
|
@ -1627,7 +1681,7 @@ Enter your Kernel parameters ${bwhite}(space-seperated)${blue}: "
|
||||||
==> " cust_bootopts
|
==> " cust_bootopts
|
||||||
|
|
||||||
if [[ -z "${cust_bootopts}" ]]; then
|
if [[ -z "${cust_bootopts}" ]]; then
|
||||||
NC
|
echo
|
||||||
skip
|
skip
|
||||||
else
|
else
|
||||||
ok
|
ok
|
||||||
|
@ -1660,7 +1714,7 @@ ${purple}###${nc} EFI Boot Entries Deletion ${purple}###${nc}
|
||||||
Enter a${nc} ${cyan}BootOrder${blue} number for Deletion ${bwhite}(empty to skip)${blue}: "
|
Enter a${nc} ${cyan}BootOrder${blue} number for Deletion ${bwhite}(empty to skip)${blue}: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " boot_entry
|
==> " boot_entry
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${boot_entry}" ]]; then
|
if [[ -n "${boot_entry}" ]]; then
|
||||||
|
|
||||||
|
@ -1707,7 +1761,7 @@ ${purple}###${nc} Wireless Regulatory Domain Setup ${purple}###${nc}
|
||||||
"
|
"
|
||||||
skip
|
skip
|
||||||
ok
|
ok
|
||||||
NC
|
echo
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1718,7 +1772,7 @@ Enter your Country Code, ie:${nc} ${cyan}US ${bwhite}(empty to skip)${blue}: "
|
||||||
==> " REGDOM
|
==> " REGDOM
|
||||||
|
|
||||||
if [[ -z "${REGDOM}" ]]; then
|
if [[ -z "${REGDOM}" ]]; then
|
||||||
NC
|
echo
|
||||||
skip
|
skip
|
||||||
elif [[ "${REGDOM}" =~ [[:lower:]] ]]; then
|
elif [[ "${REGDOM}" =~ [[:lower:]] ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -1955,7 +2009,7 @@ ${disks} "
|
||||||
Enter a disk number: "
|
Enter a disk number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " instl_dsk_nmbr
|
==> " instl_dsk_nmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${instl_dsk_nmbr}" ]]; then
|
if [[ -n "${instl_dsk_nmbr}" ]]; then
|
||||||
instl_drive="$(echo "${disks}" | awk "\$1 == "${instl_dsk_nmbr}" {print \$2}")"
|
instl_drive="$(echo "${disks}" | awk "\$1 == "${instl_dsk_nmbr}" {print \$2}")"
|
||||||
|
@ -2162,7 +2216,7 @@ ${purple}###${nc} Encryption Setup ${purple}###${nc}
|
||||||
"
|
"
|
||||||
read -p "
|
read -p "
|
||||||
==> " encrypt
|
==> " encrypt
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${encrypt}" == "no" ]]; then
|
if [[ "${encrypt}" == "no" ]]; then
|
||||||
skip
|
skip
|
||||||
|
@ -2179,7 +2233,7 @@ ${purple}###${nc} Encryption Setup ${purple}###${nc}
|
||||||
Enter a name: "
|
Enter a name: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " ENCROOT
|
==> " ENCROOT
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${ENCROOT}" ]]; then
|
if [[ -z "${ENCROOT}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -2220,7 +2274,7 @@ Enter a name: "
|
||||||
"
|
"
|
||||||
read -p "
|
read -p "
|
||||||
==> " homecrypt
|
==> " homecrypt
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${homecrypt}" == "no" ]]; then
|
if [[ "${homecrypt}" == "no" ]]; then
|
||||||
skip
|
skip
|
||||||
|
@ -2235,7 +2289,7 @@ Enter a name: "
|
||||||
Enter a name: "
|
Enter a name: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " ENCRHOME
|
==> " ENCRHOME
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${ENCRHOME}" ]]; then
|
if [[ -z "${ENCRHOME}" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -2400,7 +2454,6 @@ instl (){
|
||||||
if [[ "${encrypt}" == "no" ]]; then
|
if [[ "${encrypt}" == "no" ]]; then
|
||||||
until set_mode; do : ; done
|
until set_mode; do : ; done
|
||||||
until confirm_status; do : ; done
|
until confirm_status; do : ; done
|
||||||
return 0
|
|
||||||
|
|
||||||
elif [[ "${encrypt}" == "yes" ]]; then
|
elif [[ "${encrypt}" == "yes" ]]; then
|
||||||
until sec_erase; do : ; done
|
until sec_erase; do : ; done
|
||||||
|
@ -2416,7 +2469,6 @@ instl (){
|
||||||
fi
|
fi
|
||||||
|
|
||||||
until chroot_conf; do : ; done
|
until chroot_conf; do : ; done
|
||||||
return 0
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
@ -2460,7 +2512,7 @@ ${purple}###${nc} Mode Selection ${purple}###${nc}
|
||||||
Enter a Mode number: "
|
Enter a Mode number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " setmode
|
==> " setmode
|
||||||
NC
|
echo
|
||||||
|
|
||||||
case "${setmode}" in
|
case "${setmode}" in
|
||||||
1)
|
1)
|
||||||
|
@ -2488,7 +2540,7 @@ Enter a Mode number: "
|
||||||
"
|
"
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
lsblk -f
|
lsblk -f
|
||||||
NC
|
echo
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
@ -2879,7 +2931,7 @@ ask_homepart_form (){
|
||||||
"
|
"
|
||||||
read -p "
|
read -p "
|
||||||
==> " homeform
|
==> " homeform
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${homeform}" == "y" ]]; then
|
if [[ "${homeform}" == "y" ]]; then
|
||||||
if mkdir -pv /mnt/home; then
|
if mkdir -pv /mnt/home; then
|
||||||
|
@ -3036,7 +3088,7 @@ ${volumes} "
|
||||||
Enter your${nc} ${cyan}"${roottype}"${blue} partition number: "
|
Enter your${nc} ${cyan}"${roottype}"${blue} partition number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " mntroot_nmbr
|
==> " mntroot_nmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${mntroot_nmbr}" ]]; then
|
if [[ -n "${mntroot_nmbr}" ]]; then
|
||||||
rootpart="$(echo "${volumes}" | awk "\$1 == "${mntroot_nmbr}" { print \$2}")"
|
rootpart="$(echo "${volumes}" | awk "\$1 == "${mntroot_nmbr}" { print \$2}")"
|
||||||
|
@ -3103,7 +3155,7 @@ ${volumes} "
|
||||||
Enter your${nc} ${cyan}/BOOT${blue} partition number: "
|
Enter your${nc} ${cyan}/BOOT${blue} partition number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " mntboot_nmbr
|
==> " mntboot_nmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${mntboot_nmbr}" ]]; then
|
if [[ -n "${mntboot_nmbr}" ]]; then
|
||||||
bootpart="$(echo "${volumes}" | awk "\$1 == "${mntboot_nmbr}" { print \$2}")"
|
bootpart="$(echo "${volumes}" | awk "\$1 == "${mntboot_nmbr}" { print \$2}")"
|
||||||
|
@ -3148,7 +3200,7 @@ ${volumes} "
|
||||||
Enter your${nc} ${cyan}/HOME${blue} partition number: "
|
Enter your${nc} ${cyan}/HOME${blue} partition number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " mnthome_nmbr
|
==> " mnthome_nmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${mnthome_nmbr}" ]]; then
|
if [[ -n "${mnthome_nmbr}" ]]; then
|
||||||
homepart="$(echo "${volumes}" | awk "\$1 == "${mnthome_nmbr}" { print \$2}")"
|
homepart="$(echo "${volumes}" | awk "\$1 == "${mnthome_nmbr}" { print \$2}")"
|
||||||
|
@ -3193,7 +3245,6 @@ ${purple}###${nc} Confirm Installation Status ${purple}###${nc}
|
||||||
"
|
"
|
||||||
read -p "
|
read -p "
|
||||||
==> " agree
|
==> " agree
|
||||||
NC
|
|
||||||
|
|
||||||
if [[ "${agree}" == "yes" ]]; then
|
if [[ "${agree}" == "yes" ]]; then
|
||||||
ok
|
ok
|
||||||
|
@ -3206,7 +3257,6 @@ ${purple}###${nc} Confirm Installation Status ${purple}###${nc}
|
||||||
until wireless_regdom; do : ; done
|
until wireless_regdom; do : ; done
|
||||||
fi
|
fi
|
||||||
until chroot_conf; do : ; done
|
until chroot_conf; do : ; done
|
||||||
return 0
|
|
||||||
|
|
||||||
elif [[ "${agree}" == "no" ]]; then
|
elif [[ "${agree}" == "no" ]]; then
|
||||||
reload
|
reload
|
||||||
|
@ -3229,7 +3279,6 @@ ${purple}###${nc} Unmount Filesystems ${purple}###${nc}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
revise
|
revise
|
||||||
return 0
|
|
||||||
|
|
||||||
else
|
else
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -3276,7 +3325,9 @@ ${purple}###${nc} Secure Disk Erasure ${purple}###${nc}
|
||||||
while [[ -n "${erase_dsk_nmbr}" ]]; do
|
while [[ -n "${erase_dsk_nmbr}" ]]; do
|
||||||
YELLOW "
|
YELLOW "
|
||||||
|
|
||||||
> Select a disk for Secure Erasure ${red}[!] (CAUTION) [!]${nc} "
|
> Select a disk for Secure Erasure ${red}[!] (CAUTION) [!]${yellow}
|
||||||
|
|
||||||
|
### A ${nc}reboot${yellow} is mandatory and will take effect imediatelly when done "
|
||||||
NC "
|
NC "
|
||||||
|
|
||||||
|
|
||||||
|
@ -3287,32 +3338,35 @@ ${disks}"
|
||||||
Enter a disk number ${bwhite}(empty to skip)${blue}: "
|
Enter a disk number ${bwhite}(empty to skip)${blue}: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " erase_dsk_nmbr
|
==> " erase_dsk_nmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -n "${erase_dsk_nmbr}" ]]; then
|
if [[ -n "${erase_dsk_nmbr}" ]]; then
|
||||||
erasedrive="$(echo "${disks}" | awk "\$1 == "${erase_dsk_nmbr}" {print \$2}")"
|
erasedrive="$(echo "${disks}" | awk "\$1 == "${erase_dsk_nmbr}" {print \$2}")"
|
||||||
if [[ -e "${erasedrive}" ]]; then
|
if [[ -e "${erasedrive}" ]]; then
|
||||||
cryptsetup open --type plain -d /dev/urandom "${erasedrive}" temp &&
|
cryptsetup open --type plain -d /dev/urandom "${erasedrive}" temp &&
|
||||||
dd if=/dev/zero of=/dev/mapper/temp status=progress bs=1M oflag=direct &&
|
dd if=/dev/zero of=/dev/mapper/temp status=progress bs=1M oflag=direct &&
|
||||||
if cryptsetup close temp; then
|
cryptsetup close temp
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC "
|
NC "
|
||||||
|
|
||||||
|
|
||||||
==> [${green}Drive "${erasedrive}" Erased OK${nc}] "
|
==> [${green}Drive "${erasedrive}" Erased OK${nc}] "
|
||||||
else
|
|
||||||
err_try
|
sleep 1
|
||||||
return 1
|
NC "
|
||||||
fi
|
|
||||||
|
==> [${green}Rebooting${nc}] "
|
||||||
|
sleep 3
|
||||||
|
reboot
|
||||||
else
|
else
|
||||||
invalid
|
invalid
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
skip
|
skip
|
||||||
|
ok
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
ok
|
|
||||||
}
|
}
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
luks (){
|
luks (){
|
||||||
|
@ -3449,7 +3503,7 @@ ${purple}###${nc} LUKS Encryption ${purple}###${nc}
|
||||||
"
|
"
|
||||||
read -p "
|
read -p "
|
||||||
==> " homeform
|
==> " homeform
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${homeform}" == "y" ]]; then
|
if [[ "${homeform}" == "y" ]]; then
|
||||||
if mkfs.ext4 -F -L HOME "${home_dev}"; then
|
if mkfs.ext4 -F -L HOME "${home_dev}"; then
|
||||||
|
@ -3514,7 +3568,7 @@ ${purple}###${nc} LUKS Encryption ${purple}###${nc}
|
||||||
"
|
"
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
lsblk -f
|
lsblk -f
|
||||||
NC
|
echo
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
@ -3543,7 +3597,7 @@ ${purple}###${nc} Optimize PacMan ${purple}###${nc}
|
||||||
Enter country name or code ${bwhite}(Empty for Defaults)${blue}: "
|
Enter country name or code ${bwhite}(Empty for Defaults)${blue}: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " COUNTRY
|
==> " COUNTRY
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ -z "${COUNTRY}" ]] ; then
|
if [[ -z "${COUNTRY}" ]] ; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -3577,7 +3631,7 @@ Enter country name or code ${bwhite}(Empty for Defaults)${blue}: "
|
||||||
Enter [y/n]: "
|
Enter [y/n]: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " parallel
|
==> " parallel
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${parallel}" == "y" ]]; then
|
if [[ "${parallel}" == "y" ]]; then
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -3598,7 +3652,7 @@ Enter [y/n]: "
|
||||||
Enter a number: "
|
Enter a number: "
|
||||||
read -p "
|
read -p "
|
||||||
==> " parallelnmbr
|
==> " parallelnmbr
|
||||||
NC
|
echo
|
||||||
|
|
||||||
if [[ "${parallelnmbr}" =~ ^(2|3|4|5)$ ]]; then
|
if [[ "${parallelnmbr}" =~ ^(2|3|4|5)$ ]]; then
|
||||||
sed -i "s|#ParallelDownloads = 5|ParallelDownloads = "${parallelnmbr}"|g" /etc/pacman.conf
|
sed -i "s|#ParallelDownloads = 5|ParallelDownloads = "${parallelnmbr}"|g" /etc/pacman.conf
|
||||||
|
@ -3721,9 +3775,9 @@ ${purple}###${nc} Pacstrap System ${purple}###${nc}
|
||||||
11) # NOTE: Custom System:
|
11) # NOTE: Custom System:
|
||||||
|
|
||||||
if [[ "${vendor}" == "Virtual Machine" ]]; then
|
if [[ "${vendor}" == "Virtual Machine" ]]; then
|
||||||
deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}""
|
deskpkgs="base sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${greeter}""
|
||||||
else
|
else
|
||||||
deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}""
|
deskpkgs="base linux-firmware sudo "${bootldr_pkgs}" "${custompkgs}" "${fstools}" "${kernel}" "${microcode}" "${vgapkgs}" "${wireless_reg}" "${greeter}""
|
||||||
fi ;;
|
fi ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -3829,7 +3883,7 @@ REGDOM
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
chroot_conf (){
|
chroot_conf (){
|
||||||
|
|
||||||
local prompt="System"
|
local prompt="Arch Linux"
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
NC "
|
NC "
|
||||||
_________________________________
|
_________________________________
|
||||||
|
@ -3946,7 +4000,7 @@ ${purple}###${nc} Chroot & Configure System ${purple}###${nc}
|
||||||
|
|
||||||
if [[ "${packages}" =~ ^(1|3|4|5|6|7|8|9|10)$ ]]; then
|
if [[ "${packages}" =~ ^(1|3|4|5|6|7|8|9|10)$ ]]; then
|
||||||
|
|
||||||
arch-chroot /mnt <<-SYSTEM
|
arch-chroot /mnt <<-VANILLA_CONF
|
||||||
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
||||||
locale-gen &&
|
locale-gen &&
|
||||||
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
||||||
|
@ -3971,7 +4025,7 @@ ${purple}###${nc} Chroot & Configure System ${purple}###${nc}
|
||||||
echo "
|
echo "
|
||||||
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
||||||
visudo -c /etc/sudoers.d/sudoedits
|
visudo -c /etc/sudoers.d/sudoedits
|
||||||
SYSTEM
|
VANILLA_CONF
|
||||||
|
|
||||||
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
|
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
|
||||||
if [[ "${packages}" == "6" ]]; then
|
if [[ "${packages}" == "6" ]]; then
|
||||||
|
@ -3979,13 +4033,13 @@ SYSTEM
|
||||||
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf
|
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-deepin-greeter|g' /etc/lightdm/lightdm.conf
|
||||||
DEEPIN
|
DEEPIN
|
||||||
elif [[ "${packages}" == "7" ]]; then
|
elif [[ "${packages}" == "7" ]]; then
|
||||||
arch-chroot /mnt <<-BUDGIE
|
arch-chroot /mnt <<-GTK
|
||||||
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf
|
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf
|
||||||
BUDGIE
|
GTK
|
||||||
else
|
else
|
||||||
arch-chroot /mnt <<-LIGHTDM
|
arch-chroot /mnt <<-SLICK
|
||||||
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf
|
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf
|
||||||
LIGHTDM
|
SLICK
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -4001,6 +4055,7 @@ LIGHTDM
|
||||||
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
|
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
|
||||||
systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim}
|
systemctl enable systemd-boot-update ${bluetooth} ${displaymanager} ${network} ${trim}
|
||||||
BOOTCTL
|
BOOTCTL
|
||||||
|
|
||||||
elif [[ "${bootloader}" == "2" ]]; then
|
elif [[ "${bootloader}" == "2" ]]; then
|
||||||
arch-chroot /mnt <<-GRUB
|
arch-chroot /mnt <<-GRUB
|
||||||
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
|
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
|
||||||
|
@ -4023,7 +4078,6 @@ GRUBBTRFSD
|
||||||
sed -i "/^#GRUB_TERMINAL_OUTPUT=console/s/^#//" /etc/default/grub &&
|
sed -i "/^#GRUB_TERMINAL_OUTPUT=console/s/^#//" /etc/default/grub &&
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
NVIDIAGRUB
|
NVIDIAGRUB
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -4069,7 +4123,7 @@ NVIDIAHOOK
|
||||||
NRG
|
NRG
|
||||||
fi
|
fi
|
||||||
|
|
||||||
arch-chroot /mnt <<-OPTIMIZED
|
arch-chroot /mnt <<-OPTIMIZED_CONF
|
||||||
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
||||||
locale-gen &&
|
locale-gen &&
|
||||||
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
||||||
|
@ -4205,7 +4259,7 @@ NRG
|
||||||
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
||||||
visudo -c /etc/sudoers.d/sudoedits &&
|
visudo -c /etc/sudoers.d/sudoedits &&
|
||||||
systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim}
|
systemctl enable avahi-daemon bluetooth cups ipp-usb NetworkManager rngd sddm systemd-boot-update ufw ${trim}
|
||||||
OPTIMIZED
|
OPTIMIZED_CONF
|
||||||
|
|
||||||
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
|
if [[ "${vgaconf}" == "y" && "${vendor}" == "Nvidia" ]]; then
|
||||||
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
|
if [[ "${kernelnmbr}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "1" ]] || [[ "${kernelnmbr}" == "2" && "${family}" == "2" && ${nvdriver} == "2" ]]; then
|
||||||
|
@ -4242,7 +4296,7 @@ NVIDIAHOOK
|
||||||
# NOTE: Custom System Configuration (Add any extra configuration below):
|
# NOTE: Custom System Configuration (Add any extra configuration below):
|
||||||
|
|
||||||
if [[ "${packages}" == "11" ]]; then
|
if [[ "${packages}" == "11" ]]; then
|
||||||
arch-chroot /mnt <<-CUSTOM
|
arch-chroot /mnt <<-CUSTOM_CONF
|
||||||
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
sed -i "/^#${SETLOCALE}/s/^#//" /etc/locale.gen &&
|
||||||
locale-gen &&
|
locale-gen &&
|
||||||
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
echo LANG=${SETLOCALE} > /etc/locale.conf &&
|
||||||
|
@ -4266,7 +4320,20 @@ NVIDIAHOOK
|
||||||
echo "
|
echo "
|
||||||
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
%wheel ALL=(ALL) ALL" | tee /etc/sudoers.d/sudoedits &&
|
||||||
visudo -c /etc/sudoers.d/sudoedits
|
visudo -c /etc/sudoers.d/sudoedits
|
||||||
CUSTOM
|
CUSTOM_CONF
|
||||||
|
|
||||||
|
if [[ -f /mnt/etc/lightdm/lightdm.conf ]]; then
|
||||||
|
|
||||||
|
if [[ "${greeternmbr}" == "1" ]]; then
|
||||||
|
arch-chroot /mnt <<-GTK
|
||||||
|
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-gtk-greeter|g' /etc/lightdm/lightdm.conf
|
||||||
|
GTK
|
||||||
|
elif [[ "${greeternmbr}" == "2" ]]; then
|
||||||
|
arch-chroot /mnt <<-SLICK
|
||||||
|
sed -i 's|^#greeter-session=example-gtk-gnome|greeter-session=lightdm-slick-greeter|g' /etc/lightdm/lightdm.conf
|
||||||
|
SLICK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${bootloader}" == "1" ]]; then
|
if [[ "${bootloader}" == "1" ]]; then
|
||||||
arch-chroot /mnt <<-BOOTCTL
|
arch-chroot /mnt <<-BOOTCTL
|
||||||
|
@ -4280,6 +4347,7 @@ CUSTOM
|
||||||
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
|
options rw ${boot_opts}" | tee /boot/loader/entries/arch.conf &&
|
||||||
systemctl enable systemd-boot-update ${customservices} ${trim}
|
systemctl enable systemd-boot-update ${customservices} ${trim}
|
||||||
BOOTCTL
|
BOOTCTL
|
||||||
|
|
||||||
elif [[ "${bootloader}" == "2" ]]; then
|
elif [[ "${bootloader}" == "2" ]]; then
|
||||||
arch-chroot /mnt <<-GRUB
|
arch-chroot /mnt <<-GRUB
|
||||||
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
|
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB &&
|
||||||
|
@ -4288,8 +4356,14 @@ BOOTCTL
|
||||||
-e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \
|
-e "/^#GRUB_DISABLE_OS_PROBER=false/s/^#//" \
|
||||||
/etc/default/grub &&
|
/etc/default/grub &&
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
systemctl enable ${customservices} ${trim}
|
|
||||||
GRUB
|
GRUB
|
||||||
|
|
||||||
|
if [[ -n "${customservices}" || -n "${trim}" ]]; then
|
||||||
|
arch-chroot /mnt <<-SERVICES
|
||||||
|
systemctl enable ${customservices} ${trim}
|
||||||
|
SERVICES
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then
|
if [[ "${bootloader}" == "2" && "${fs}" == "2" ]]; then
|
||||||
arch-chroot /mnt <<-GRUBBTRFSD
|
arch-chroot /mnt <<-GRUBBTRFSD
|
||||||
systemctl enable grub-btrfsd
|
systemctl enable grub-btrfsd
|
||||||
|
@ -4339,12 +4413,32 @@ NVIDIAHOOK
|
||||||
# ### END FUNCTIONS ###
|
# ### END FUNCTIONS ###
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
|
||||||
clear
|
|
||||||
set -eo pipefail
|
|
||||||
run_as="$(whoami)"
|
run_as="$(whoami)"
|
||||||
tty="$(tty)"
|
tty="$(tty)"
|
||||||
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
|
disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)"
|
||||||
|
SETLOCALE=""
|
||||||
|
USERNAME=""
|
||||||
|
kernelnmbr=""
|
||||||
|
fs=""
|
||||||
|
vgaconf=""
|
||||||
|
packages=""
|
||||||
|
efi_entr_del=""
|
||||||
|
wrlss_rgd=""
|
||||||
|
sanity=""
|
||||||
|
install=""
|
||||||
|
bootldr_pkgs=""
|
||||||
|
devel=""
|
||||||
|
REGDOM=""
|
||||||
|
vga_bootopts=""
|
||||||
|
btrfs_opts=""
|
||||||
|
trim=""
|
||||||
|
swapmode=""
|
||||||
|
homecrypt=""
|
||||||
|
greeter=""
|
||||||
|
revision=""
|
||||||
|
greeternmbr=""
|
||||||
|
|
||||||
|
clear
|
||||||
first_check
|
first_check
|
||||||
sleep 1
|
sleep 1
|
||||||
CYAN "
|
CYAN "
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue