Merge pull request #470 from kronikpillow/posix

posix formatting with shfmt
This commit is contained in:
Luke Smith 2022-07-05 17:01:28 -04:00 committed by GitHub
commit ebab3afdcb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,14 +57,17 @@ usercheck() {
preinstallmsg() { preinstallmsg() {
whiptail --title "Let's get this party started!" --yes-button "Let's go!" \ whiptail --title "Let's get this party started!" --yes-button "Let's go!" \
--no-button "No, nevermind!" \ --no-button "No, nevermind!" \
--yesno "The rest of the installation will now be totally automated, so you can sit back and relax.\\n\\nIt will take some time, but when done, you can relax even more with your complete system.\\n\\nNow just press <Let's go!> and the system will begin installation!" 13 60 || { clear; exit 1; } --yesno "The rest of the installation will now be totally automated, so you can sit back and relax.\\n\\nIt will take some time, but when done, you can relax even more with your complete system.\\n\\nNow just press <Let's go!> and the system will begin installation!" 13 60 || {
clear
exit 1
}
} }
adduserandpass() { adduserandpass() {
# Adds user `$name` with password $pass1. # Adds user `$name` with password $pass1.
whiptail --infobox "Adding user \"$name\"..." 7 50 whiptail --infobox "Adding user \"$name\"..." 7 50
useradd -m -g wheel -s /bin/zsh "$name" >/dev/null 2>&1 \ useradd -m -g wheel -s /bin/zsh "$name" >/dev/null 2>&1 ||
|| usermod -a -G wheel "$name" && mkdir -p /home/"$name" && chown "$name":wheel /home/"$name" usermod -a -G wheel "$name" && mkdir -p /home/"$name" && chown "$name":wheel /home/"$name"
export repodir="/home/$name/.local/src" export repodir="/home/$name/.local/src"
mkdir -p "$repodir" mkdir -p "$repodir"
chown -R "$name":wheel "$(dirname "$repodir")" chown -R "$name":wheel "$(dirname "$repodir")"
@ -74,7 +77,7 @@ adduserandpass() {
refreshkeys() { refreshkeys() {
case "$(readlink -f /sbin/init)" in case "$(readlink -f /sbin/init)" in
*systemd* ) *systemd*)
whiptail --infobox "Refreshing Arch Keyring..." 7 40 whiptail --infobox "Refreshing Arch Keyring..." 7 40
pacman --noconfirm -S archlinux-keyring >/dev/null 2>&1 pacman --noconfirm -S archlinux-keyring >/dev/null 2>&1
;; ;;
@ -87,7 +90,7 @@ Server = https://mirror1.artixlinux.org/universe/\$arch
Server = https://mirror.pascalpuffke.de/artix-universe/\$arch Server = https://mirror.pascalpuffke.de/artix-universe/\$arch
Server = https://artixlinux.qontinuum.space/artixlinux/universe/os/\$arch Server = https://artixlinux.qontinuum.space/artixlinux/universe/os/\$arch
Server = https://mirror1.cl.netactuate.com/artix/universe/\$arch Server = https://mirror1.cl.netactuate.com/artix/universe/\$arch
Server = https://ftp.crifo.org/artix-universe/" >> /etc/pacman.conf Server = https://ftp.crifo.org/artix-universe/" >>/etc/pacman.conf
pacman -Sy pacman -Sy
fi fi
pacman --noconfirm --needed -S \ pacman --noconfirm --needed -S \
@ -95,7 +98,7 @@ Server = https://ftp.crifo.org/artix-universe/" >> /etc/pacman.conf
for repo in extra community; do for repo in extra community; do
grep -q "^\[$repo\]" /etc/pacman.conf || grep -q "^\[$repo\]" /etc/pacman.conf ||
echo "[$repo] echo "[$repo]
Include = /etc/pacman.d/mirrorlist-arch" >> /etc/pacman.conf Include = /etc/pacman.d/mirrorlist-arch" >>/etc/pacman.conf
done done
pacman -Sy >/dev/null 2>&1 pacman -Sy >/dev/null 2>&1
pacman-key --populate archlinux >/dev/null 2>&1 pacman-key --populate archlinux >/dev/null 2>&1
@ -110,7 +113,10 @@ manualinstall() {
sudo -u "$name" mkdir -p "$repodir/$1" sudo -u "$name" mkdir -p "$repodir/$1"
sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \ sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \
--no-tags -q "https://aur.archlinux.org/$1.git" "$repodir/$1" || --no-tags -q "https://aur.archlinux.org/$1.git" "$repodir/$1" ||
{ cd "$repodir/$1" || return 1 ; sudo -u "$name" git pull --force origin master ;} {
cd "$repodir/$1" || return 1
sudo -u "$name" git pull --force origin master
}
cd "$repodir/$1" || exit 1 cd "$repodir/$1" || exit 1
sudo -u "$name" -D "$repodir/$1" \ sudo -u "$name" -D "$repodir/$1" \
makepkg --noconfirm -si >/dev/null 2>&1 || return 1 makepkg --noconfirm -si >/dev/null 2>&1 || return 1
@ -130,7 +136,10 @@ gitmakeinstall() {
--infobox "Installing \`$progname\` ($n of $total) via \`git\` and \`make\`. $(basename "$1") $2" 8 70 --infobox "Installing \`$progname\` ($n of $total) via \`git\` and \`make\`. $(basename "$1") $2" 8 70
sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \ sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch \
--no-tags -q "$1" "$dir" || --no-tags -q "$1" "$dir" ||
{ cd "$dir" || return 1 ; sudo -u "$name" git pull --force origin master ;} {
cd "$dir" || return 1
sudo -u "$name" git pull --force origin master
}
cd "$dir" || exit 1 cd "$dir" || exit 1
make >/dev/null 2>&1 make >/dev/null 2>&1
make install >/dev/null 2>&1 make install >/dev/null 2>&1
@ -152,21 +161,21 @@ pipinstall() {
} }
installationloop() { installationloop() {
([ -f "$progsfile" ] && cp "$progsfile" /tmp/progs.csv) \ ([ -f "$progsfile" ] && cp "$progsfile" /tmp/progs.csv) ||
|| curl -Ls "$progsfile" | sed '/^#/d' > /tmp/progs.csv curl -Ls "$progsfile" | sed '/^#/d' >/tmp/progs.csv
total=$(wc -l < /tmp/progs.csv) total=$(wc -l </tmp/progs.csv)
aurinstalled=$(pacman -Qqm) aurinstalled=$(pacman -Qqm)
while IFS=, read -r tag program comment; do while IFS=, read -r tag program comment; do
n=$((n+1)) n=$((n + 1))
echo "$comment" | grep -q "^\".*\"$" \ echo "$comment" | grep -q "^\".*\"$" &&
&& comment="$(echo "$comment" | sed -E "s/(^\"|\"$)//g")" comment="$(echo "$comment" | sed -E "s/(^\"|\"$)//g")"
case "$tag" in case "$tag" in
"A") aurinstall "$program" "$comment" ;; "A") aurinstall "$program" "$comment" ;;
"G") gitmakeinstall "$program" "$comment" ;; "G") gitmakeinstall "$program" "$comment" ;;
"P") pipinstall "$program" "$comment" ;; "P") pipinstall "$program" "$comment" ;;
*) maininstall "$program" "$comment" ;; *) maininstall "$program" "$comment" ;;
esac esac
done < /tmp/progs.csv done </tmp/progs.csv
} }
putgitrepo() { putgitrepo() {
@ -182,7 +191,7 @@ putgitrepo() {
sudo -u "$name" cp -rfT "$dir" "$2" sudo -u "$name" cp -rfT "$dir" "$2"
} }
finalize(){ finalize() {
whiptail --title "All done!" \ whiptail --title "All done!" \
--msgbox "Congrats! Provided there were no hidden errors, the script completed successfully and all the programs and configuration files should be in place.\\n\\nTo run the new graphical environment, log out and log back in as your new user, then run the command \"startx\" to start the graphical environment (it will start automatically in tty1).\\n\\n.t Luke" 13 80 --msgbox "Congrats! Provided there were no hidden errors, the script completed successfully and all the programs and configuration files should be in place.\\n\\nTo run the new graphical environment, log out and log back in as your new user, then run the command \"startx\" to start the graphical environment (it will start automatically in tty1).\\n\\n.t Luke" 13 80
} }
@ -213,7 +222,7 @@ preinstallmsg || error "User exited."
refreshkeys || refreshkeys ||
error "Error automatically refreshing Arch keyring. Consider doing so manually." error "Error automatically refreshing Arch keyring. Consider doing so manually."
for x in curl ca-certificates base-devel git ntp zsh ; do for x in curl ca-certificates base-devel git ntp zsh; do
whiptail --title "LARBS Installation" \ whiptail --title "LARBS Installation" \
--infobox "Installing \`$x\` which is required to install and configure other programs." 8 70 --infobox "Installing \`$x\` which is required to install and configure other programs." 8 70
installpkg "$x" installpkg "$x"
@ -230,7 +239,7 @@ adduserandpass || error "Error adding username and/or password."
# Allow user to run sudo without password. Since AUR programs must be installed # Allow user to run sudo without password. Since AUR programs must be installed
# in a fakeroot environment, this is required for all builds with AUR. # in a fakeroot environment, this is required for all builds with AUR.
trap 'rm -f /etc/sudoers.d/larbs-temp' HUP INT QUIT TERM PWR EXIT trap 'rm -f /etc/sudoers.d/larbs-temp' HUP INT QUIT TERM PWR EXIT
echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/larbs-temp echo "%wheel ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/larbs-temp
# Make pacman colorful, concurrent downloads and Pacman eye-candy. # Make pacman colorful, concurrent downloads and Pacman eye-candy.
grep -q "ILoveCandy" /etc/pacman.conf || sed -i "/#VerbosePkgLists/a ILoveCandy" /etc/pacman.conf grep -q "ILoveCandy" /etc/pacman.conf || sed -i "/#VerbosePkgLists/a ILoveCandy" /etc/pacman.conf
@ -259,7 +268,7 @@ rm -rf "/home/$name/.git/" "/home/$name/README.md" "/home/$name/LICENSE" "/home/
# Most important command! Get rid of the beep! # Most important command! Get rid of the beep!
rmmod pcspkr rmmod pcspkr
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf echo "blacklist pcspkr" >/etc/modprobe.d/nobeep.conf
# Make zsh the default shell for the user. # Make zsh the default shell for the user.
chsh -s /bin/zsh "$name" >/dev/null 2>&1 chsh -s /bin/zsh "$name" >/dev/null 2>&1
@ -268,10 +277,10 @@ sudo -u "$name" mkdir -p "/home/$name/.config/abook/"
sudo -u "$name" mkdir -p "/home/$name/.config/mpd/playlists/" sudo -u "$name" mkdir -p "/home/$name/.config/mpd/playlists/"
# dbus UUID must be generated for Artix runit. # dbus UUID must be generated for Artix runit.
dbus-uuidgen > /var/lib/dbus/machine-id dbus-uuidgen >/var/lib/dbus/machine-id
# Use system notifications for Brave on Artix # Use system notifications for Brave on Artix
echo "export \$(dbus-launch)" > /etc/profile.d/dbus.sh echo "export \$(dbus-launch)" >/etc/profile.d/dbus.sh
# Enable tap to click # Enable tap to click
[ ! -f /etc/X11/xorg.conf.d/40-libinput.conf ] && printf 'Section "InputClass" [ ! -f /etc/X11/xorg.conf.d/40-libinput.conf ] && printf 'Section "InputClass"
@ -281,12 +290,12 @@ echo "export \$(dbus-launch)" > /etc/profile.d/dbus.sh
Driver "libinput" Driver "libinput"
# Enable left mouse button by tapping # Enable left mouse button by tapping
Option "Tapping" "on" Option "Tapping" "on"
EndSection' > /etc/X11/xorg.conf.d/40-libinput.conf EndSection' >/etc/X11/xorg.conf.d/40-libinput.conf
# Allow wheel users to sudo with password and allow several system commands # Allow wheel users to sudo with password and allow several system commands
# (like `shutdown` to run without password). # (like `shutdown` to run without password).
echo "%wheel ALL=(ALL) ALL #LARBS" > /etc/sudoers.d/larbs-wheel-can-sudo echo "%wheel ALL=(ALL) ALL #LARBS" >/etc/sudoers.d/larbs-wheel-can-sudo
echo "%wheel ALL=(ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/pacman -Syyu --noconfirm,/usr/bin/loadkeys,/usr/bin/paru,/usr/bin/pacman -Syyuw --noconfirm" > /etc/sudoers.d/larbs-cmds-without-password echo "%wheel ALL=(ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/pacman -Syyu --noconfirm,/usr/bin/loadkeys,/usr/bin/paru,/usr/bin/pacman -Syyuw --noconfirm" >/etc/sudoers.d/larbs-cmds-without-password
# Last message! Install complete! # Last message! Install complete!
finalize finalize