posix formatting with shfmt
This commit is contained in:
parent
846d2fb7ad
commit
e2eb921348
1 changed files with 55 additions and 46 deletions
101
larbs.sh
101
larbs.sh
|
@ -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,32 +77,32 @@ 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
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
whiptail --infobox "Enabling Arch Repositories..." 7 40
|
whiptail --infobox "Enabling Arch Repositories..." 7 40
|
||||||
if ! grep -q "^\[universe\]" /etc/pacman.conf; then
|
if ! grep -q "^\[universe\]" /etc/pacman.conf; then
|
||||||
echo "[universe]
|
echo "[universe]
|
||||||
Server = https://universe.artixlinux.org/\$arch
|
Server = https://universe.artixlinux.org/\$arch
|
||||||
Server = https://mirror1.artixlinux.org/universe/\$arch
|
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 \
|
||||||
artix-keyring artix-archlinux-support >/dev/null 2>&1
|
artix-keyring artix-archlinux-support >/dev/null 2>&1
|
||||||
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
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue