Remove some uneeded sections, minor cleanup

This commit is contained in:
natemaia 2019-08-19 19:19:40 -07:00
parent 2078621172
commit aab6018e41

View File

@ -5,7 +5,7 @@
# Some ideas and code reworked from other resources
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
VER="2.0.52" # installer version
VER="2.0.53" # installer version
DIST="ArchLabs" # linux distributor
MNT="/mnt" # install mountpoint
ANS="/tmp/ans" # dialog answer file
@ -59,7 +59,7 @@ LOGINRC='' # login shell rc file, eg. .zprofile, .bash_profile, .profile
INSTALL_WMS='' # space separated list of chosen wm/de
WM_PKGS='' # full list of packages added during wm/de choice (not user edited)
WM_PKGS='' # list of packages added during wm/de choice (not user edited)
PACKAGES='' # list of all packages to install including WM_PKGS (not user edited)
USER_PKGS='' # packages selected by the user during install
@ -216,6 +216,12 @@ declare -A FS_OPTS=(
[f2fs]='discard fastboot flush_merge data_flush inline_xattr inline_data noinline_data inline_dentry no_heap noacl nobarrier norecovery noextent_cache disable_roll_forward disable_ext_identify'
) # }
# packages installed for each login option {
declare -A LOGIN_PKGS=(
[xinit]='xorg-xinit'
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
) # }
# PKG_EXT: if you add a package to $PACKAGES in any dialog {
# and it uses/requires some additional packages,
# you can add them here to keep it simple: [package]="extra"
@ -358,6 +364,7 @@ select_show()
local mnt="none"
local cmd="${BCMDS[$BOOTLDR]}"
local pkgs="${USER_PKGS// / } ${PACKAGES// / }"
local exmnt="${EXMNT:-none}"
[[ $BOOT_PART ]] && mnt="/$BOOTDIR"
[[ $INSTALL_WMS == *dwm* ]] && pkgs="dwm st dmenu $pkgs"
pkgs="${pkgs// / }"
@ -367,17 +374,14 @@ select_show()
Root: ${ROOT_PART:-none}
Boot: ${BOOT_PART:-${BOOT_DEV:-none}}
Swap: ${SWAP_PART:-none}
Size: ${SWAP_SIZE:-none}
Extra: ${EXMNTS:-$exmnt}
Hooks: ${HOOKS:-none}
LVM: ${LVM:-none}
LUKS: ${LUKS:-none}
Extra: ${EXMNTS:-${EXMNT:-none}}
Hooks: ${HOOKS:-none}
---------- BOOTLOADER CONFIGURATION -----------
Bootloader: ${BOOTLDR:-none}
@ -395,18 +399,18 @@ select_show()
------------ USER CONFIGURATION --------------
User: ${NEWUSER:-none}
Shell: ${MYSHELL:-none}
Session: ${LOGIN_WM:-none}
Autologin: ${AUTOLOGIN:-none}
Login Method: ${LOGIN_TYPE:-none}
User: ${NEWUSER:-none}
Shell: ${MYSHELL:-none}
Session: ${LOGIN_WM:-none}
Autologin: ${AUTOLOGIN:-none}
DM or xinit: ${LOGIN_TYPE:-none}
------------ PACKAGES AND MIRRORS -------------
Kernel: ${KERNEL:-none}
Sessions: ${INSTALL_WMS:-none}
Packages: $(print4 "${pkgs:-none}")
Packages: ${USER_PKGS// / } ${PACKAGES// / }
"
}
@ -420,7 +424,6 @@ select_login()
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
AUTOLOGIN=''
LOGIN_PKGS="lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice"
EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf"
else
if (( WM_NUM == 1 )); then
@ -435,7 +438,6 @@ select_login()
txt+="- /home/$NEWUSER/$LOGINRC (run startx when logging in on tty1)\n"
txt+="- /etc/systemd/system/getty@tty1.service.d/autologin.conf (login $NEWUSER without password)\n"
yesno "Autologin" "$txt" && AUTOLOGIN=true || AUTOLOGIN=''
LOGIN_PKGS="xorg-xinit"
EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
fi
}
@ -607,7 +609,6 @@ select_sessions()
done
select_login || return 1
[[ $WM_PKGS != *"$LOGIN_PKGS"* ]] && WM_PKGS+=" $LOGIN_PKGS"
while IFS=' ' read -r pkg; do
[[ $PACKAGES != *"$pkg"* ]] && PACKAGES+=" $pkg"
@ -1089,6 +1090,7 @@ part_mountconf()
select_menu()
{
msg "Info" "\nGathering device info.\n" 0
is_bg_install || return 0
lvm_detect
umount_dir $MNT
@ -1555,17 +1557,17 @@ install_user()
install_xinit()
{
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]] && grep -q 'exec' $MNT/home/$NEWUSER/.xinitrc; then
sed -i "/exec/ c exec ${LOGIN_WM}" $MNT/home/$NEWUSER/.xinitrc
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]] && grep -q 'exec' "$MNT/home/$NEWUSER/.xinitrc"; then
sed -i "/exec/ c exec ${LOGIN_WM}" "$MNT/home/$NEWUSER/.xinitrc"
else
printf "exec %s\n" "$LOGIN_WM" >> $MNT/home/$NEWUSER/.xinitrc
printf "exec %s\n" "$LOGIN_WM" >> "$MNT/home/$NEWUSER/.xinitrc"
fi
[[ ${EDIT_FILES[login]} == *"$LOGINRC"* ]] || EDIT_FILES[login]+=" /home/$NEWUSER/$LOGINRC"
if [[ $AUTOLOGIN ]]; then
sed -i "s/root/${NEWUSER}/g" $SERVICE/autologin.conf
cat > $MNT/home/$NEWUSER/$LOGINRC <<EOF
cat > "$MNT/home/$NEWUSER/$LOGINRC" <<EOF
# ~/$LOGINRC
# sourced by ${MYSHELL##*/} when used as a login shell
@ -1588,8 +1590,7 @@ install_login()
install_lightdm()
{
rm -rf $SERVICE
rm -rf $MNT/home/$NEWUSER/.{xinitrc,profile,zprofile,bash_profile}
rm -rf "$SERVICE" "$MNT/home/$NEWUSER"/.{xinitrc,profile,zprofile,bash_profile}
chrun 'systemctl set-default graphical.target && systemctl enable lightdm.service' 2>$ERR
errshow 1 "systemctl set-default graphical.target && systemctl enable lightdm.service"
cat > $MNT/etc/lightdm/lightdm-gtk-greeter.conf << EOF
@ -1623,56 +1624,53 @@ install_awesome()
install_packages()
{
local rmpkg=""
local inpkg="$PACKAGES $USER_PKGS"
[[ -x $MNT/usr/bin/X ]] || inpkg+=" $BASE_PKGS"
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS $UCODE "
if pacman -Qsq 'archlabs-installer' >/dev/null 2>&1; then
rmpkg+=" archlabs-installer"
rmpkg+="archlabs-installer "
elif [[ -e "$MNT/usr/bin/archlabs-installer" ]]; then
rm -f "$MNT/usr/bin/archlabs-installer"
fi
# add extras or missed packages gathered throughout the install
[[ $UCODE ]] && inpkg+=" $UCODE"
[[ $KERNEL == 'linux' ]] || { inpkg+=" $KERNEL"; rmpkg+=" linux"; }
[[ $MYSHELL == "/usr/bin/mksh" ]] && inpkg+=" mksh"
# add extra packages chosen throughout the install
if [[ $MYSHELL == '/usr/bin/zsh' ]]; then
inpkg+=" zsh-completions"
inpkg+="zsh-completions "
else
rmpkg+=" zsh"
rmpkg+="zsh "
[[ $MYSHELL == '/usr/bin/mksh' ]] && inpkg+="mksh "
fi
if [[ $KERNEL != 'linux' ]]; then
inpkg+="$KERNEL "
rmpkg+="linux "
fi
# packages only installed for certain WM/DE
[[ $INSTALL_WMS =~ ^(plasma|gnome|cinnamon)$ ]] || inpkg+=" archlabs-ksuperkey"
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|dwm|fluxbox) ]] && inpkg+=" $WM_BASE_PKGS"
# gnome, plasma, and cinnamon have their own superkey bind and ksuperkey conflicts
[[ $INSTALL_WMS =~ ^(plasma|gnome|cinnamon)$ ]] || inpkg+="archlabs-ksuperkey "
# ensure a terminal gets installed
# window manager only packages
[[ $INSTALL_WMS =~ (openbox|bspwm|i3-gaps|dwm|fluxbox) ]] && inpkg+="$WM_BASE_PKGS "
# ensure a terminal gets installed if one wasn't chosen or a DE that installs one
[[ $inpkg =~ (term|urxvt|tilix|alacritty|sakura|tilda|plasma|cinnamon) || $INSTALL_WMS == *dwm* ]] || inpkg+=" xterm"
# update fully first to avoid issues
# update first to avoid issues
chrun "pacman -Syyu --noconfirm"
# remove packages we no longer want
# remove the packages we don't want on the installed system
[[ $rmpkg ]] && chrun "pacman -Rns $rmpkg --noconfirm"
# for some reason the user has "no network" after install even though the
# system is connected, reinstalling iputils fixes it
# reinstalling iputils fixes the network issue for non-root users
chrun "pacman -S iputils --noconfirm"
# install all the packages chosen throughout the install
# install the packages chosen throughout the install
chrun "pacman -S $inpkg --needed --noconfirm" 2>$ERR
errshow 1 "pacman -S $inpkg --needed --noconfirm"
# extras for bootloaders
# bootloader packages
if [[ $BOOTLDR == 'grub' ]]; then
if [[ $SYS == 'BIOS' ]]; then
chrun "pacman -S grub os-prober --needed --noconfirm" 2>$ERR
errshow 1 "pacman -S grub os-prober --needed --noconfirm"
else
chrun "pacman -S grub os-prober efibootmgr --needed --noconfirm" 2>$ERR
errshow 1 "pacman -S grub os-prober efibootmgr --needed --noconfirm"
fi
[[ $SYS == 'UEFI' ]] && local efib="efibootmgr"
chrun "pacman -S os-prober grub $efib --needed --noconfirm" 2>$ERR
errshow 1 "pacman -S os-prober grub $efib --needed --noconfirm"
elif [[ $BOOTLDR == 'refind-efi' ]]; then
chrun "pacman -S refind-efi efibootmgr --needed --noconfirm" 2>$ERR
errshow 1 "pacman -S refind-efi efibootmgr --needed --noconfirm"
@ -1681,6 +1679,7 @@ install_packages()
errshow 1 "pacman -S efibootmgr --needed --noconfirm"
fi
# allow members of the wheel group to run commands as root
sed -i "s/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" $MNT/etc/sudoers
return 0
@ -1688,7 +1687,7 @@ install_packages()
install_suckless()
{
mkdir -pv $MNT/home/$NEWUSER/suckless
mkdir -pv "$MNT/home/$NEWUSER/suckless"
for i in dwm dmenu st; do
if chrun "git clone https://git.suckless.org/$i /home/$NEWUSER/suckless/$i"; then
@ -1698,7 +1697,7 @@ install_suckless()
fi
done
if [[ -d $MNT/home/$NEWUSER/suckless/dwm && -x $MNT/usr/bin/dwm ]]; then
if [[ -x $MNT/usr/bin/dwm ]]; then
printf "To configure dwm edit %s\n" "/home/$NEWUSER/suckless/dwm/config.h"
printf "You can then recompile it with 'sudo make clean install'\n"
sleep 2
@ -1725,7 +1724,7 @@ install_mirrorlist()
local mfile="$1" # output mirrorlist file
if hash reflector >/dev/null 2>&1; then
reflector --score 120 -l 50 -f 5 --sort rate --save "$mfile"
reflector --score 80 -l 40 -f 5 --sort rate --save "$mfile"
elif hash rankmirrors >/dev/null 2>&1; then
ip_add="$(curl -fsSL "http://api.ipstack.com/check&?access_key=5f29642060ab983b31fdf4c2935d8c56&fields=ip" |
python -c "import sys, json; print(json.load(sys.stdin)['ip'])")"
@ -1774,6 +1773,7 @@ setup_grub()
[[ $BOOT_DEV ]] || { part_device 1 || return 1; }
BCMDS[grub]="grub-install --recheck --force --target=i386-pc $BOOT_DEV"
else
# since we're not using the keyfile this is dead code
# if [[ $ROOT_PART == */dev/mapper/* && -z $LVM && -z $LUKS_PASS ]]; then
# luks_pass "$_luksopen" 1 || return 1
# fi
@ -2442,25 +2442,6 @@ sigint()
die 1
}
print4()
{
local str="$*"
if [[ $COLUMNS -ge 110 && ${#str} -gt $((COLUMNS - 30)) ]]; then
str="$(awk '{
i = 2; p1 = p2 = p3 = p4 = ""; p1 = $1; q = int(NF / 4)
for (; i <= q; i++) { p1 = p1 " " $i }
for (; i <= q * 2; i++) { p2 = p2 " " $i }
for (; i <= q * 3; i++) { p3 = p3 " " $i }
for (; i <= NF; i++) { p4 = p4 " " $i }
printf "%s\n %s\n %s\n %s", p1, p2, p3, p4
}' <<< "$str")"
printf "%s\n" "$str"
elif [[ $str ]]; then
printf "%s\n" "$str"
fi
}
termcol()
{
local colors=(