obosdi-pkg/updates/menu
2022-11-17 23:31:49 +01:00

232 lines
7.1 KiB
Bash

#!/bin/bash
. ./lib
options=()
if [ -f /usr/bin/trizen ]; then
options+=("Upgrade with trizen" "trizen -Syu")
aurhelper=1
fi
if [ -f /usr/bin/yay ]; then
options+=("Upgrade with yay" "yay -Syu")
aurhelper=1
fi
if [ -f /usr/bin/aurman ]; then
options+=("Upgrade with aurman" "aurman -Syu")
aurhelper=1
fi
if [ -f /usr/bin/lynx ] || [ -f /usr/bin/elinks ] || [ -f /usr/bin/links ]; then
options+=("Latestt News" "")
options+=("" "")
fi
options+=("Upgrade" "pacman -Syu")
options+=("Clean orphan" "pacman -Rns \$(pacman -Qqtd)")
options+=("Clean cache" "pacman -Sc")
options+=("" "")
options+=("Edit pacman.conf" "")
options+=("Edit mirrorlist" "")
options+=("" "")
options+=("Update keyring" "pacman -S archlinux-keyring")
options+=("Refresh pacman keys" "pacman-key --refresh-keys")
options+=("Add GPG key" "gpg --recv-keys")
options+=("" "")
if [ -f /var/lib/pacman/db.lck ]; then
options+=("Remove db.lck" "rm /var/lib/pacman/db.lck")
options+=("" "")
fi
if [ "$aurhelper" = "1" ]; then
if [ ! -f /usr/bin/downgrade ]; then
options+=("Install downgrade" "(AUR)")
options+=("" "")
fi
if [ ! -f /usr/bin/pkgstats ]; then
options+=("Install pkgstats" "(AUR)")
fi
if [ ! -f /usr/bin/aurvote ]; then
options+=("Install aurvote" "(AUR)")
fi
options+=("" "")
fi
if [ ! -f /usr/bin/trizen ]; then
options+=("Install trizen" "")
fi
if [ ! -f /usr/bin/yay ]; then
options+=("Install yay" "")
fi
if [ ! -f /usr/bin/aurman ]; then
options+=("Install aurman" "")
fi
if [ ! -f /usr/bin/pacdiff ]; then
options+=("" "")
options+=("Install pacman-contrib" "")
fi
sel=$(dialog --backtitle "$apptitle" --title "Updates Menu :" --cancel-button "Back" --menu "" 0 0 0 \
"${options[@]}" \
3>&1 1>&2 2>&3)
if [ ! "$?" = "0" ]; then
exit 1
fi
checkaurdependencies(){
if [ ! -f /usr/bin/automake ]; then
pacman -S --needed base-devel
fi
if [ ! -f /usr/bin/git ]; then
pacman -S --needed git
fi
if [ ! $(id -u "aurbuilder") ]; then
newpass=$(< /dev/urandom tr -dc "@#*%&_A-Z-a-z-0-9" | head -c16)
useradd -r -N -M -d /tmp/aurbuilder -s /usr/bin/nologin aurbuilder
echo -e "$newpass\n$newpass\n"|passwd aurbuilder
newpass=""
mkdir /tmp/aurbuilder 1&>/dev/null
chmod 777 /tmp/aurbuilder
else
mkdir /tmp/aurbuilder 1&>/dev/null
chmod 777 /tmp/aurbuilder
usermod -d /tmp/aurbuilder aurbuilder
fi
if [ ! -f /etc/sudoers.d/aurbuilder ]; then
echo "aurbuilder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/aurbuilder
echo "root ALL=(aurbuilder) NOPASSWD: ALL" >> /etc/sudoers.d/aurbuilder
fi
}
checkpackagequerydependencies(){
if [ ! -f /usr/bin/package-query ]; then
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/package-query.git
cd package-query
sudo -u aurbuilder makepkg -si
fi
}
clear
case $sel in
'Latestt News')
newsurl='https://archlinux.org/news/'
if [ -f /usr/bin/lynx ]; then
/usr/bin/lynx ${newsurl}
else
if [ -f /usr/bin/elinks ]; then
/usr/bin/elinks ${newsurl}
else
if [ -f /usr/bin/links ]; then
/usr/bin/links ${newsurl}
fi
fi
fi
;;
'Upgrade') pacman -Syu;;
'Upgrade with trizen')
checkaurdependencies
sudo -u aurbuilder trizen -Syu
;;
'Upgrade with aurman')
checkaurdependencies
sudo -u aurbuilder aurman -Syu
;;
'Upgrade with yay')
checkaurdependencies
sudo -u aurbuilder yay -Syu
;;
'Upgrade with yaourt')
checkaurdependencies
sudo -u aurbuilder yaourt -Syua
;;
'Clean orphan') pacman -Rns $(pacman -Qqtd);;
'Clean cache') pacman -Sc;;
'Edit pacman.conf') editfile /etc/pacman.conf;;
'Edit mirrorlist') editfile /etc/pacman.d/mirrorlist;;
'Update keyring') pacman -S archlinux-keyring;;
'Refresh pacman keys') pacman-key --refresh-keys;;
'Add GPG key')
gpgservers=()
gpgservers+=("pool.sks-keyservers.net" "")
gpgservers+=("Other" "")
sel=$(dialog --backtitle "$apptitle" --title "Add GPG key" --menu "GPG key server" 0 0 0 "${gpgservers[@]}" 3>&1 1>&2 2>&3)
if [ "$?" = "0" ]; then
case $sel in
"Other")
gpgserver=$(dialog --backtitle "$apptitle" --title "Add GPG key" --inputbox "Enter the GPG key server :" 0 0 "" 3>&1 1>&2 2>&3)
if [ "$?" = "0" ]; then
gpgkey=$(dialog --backtitle "$apptitle" --title "Add GPG key" --inputbox "Enter the GPG key :" 0 0 3>&1 1>&2 2>&3)
if [ "$?" = "0" ]; then
echo "sudo -u aurbuilder gpg --keyserver "$gpgserver" --recv-keys "$gpgkey
sudo -u aurbuilder gpg --keyserver $gpgserver --recv-keys $gpgkey
pressanykey
fi
fi
;;
*)
gpgserver=$sel
gpgkey=$(dialog --backtitle "$apptitle" --title "Add GPG key" --inputbox "Enter the GPG key :" 0 0 3>&1 1>&2 2>&3)
if [ "$?" = "0" ]; then
echo "sudo -u aurbuilder gpg --keyserver "$gpgserver" --recv-keys "$gpgkey
sudo -u aurbuilder gpg --keyserver $gpgserver --recv-keys $gpgkey
pressanykey
fi
;;
esac
fi
;;
'Remove db.lck') rm /var/lib/pacman/db.lck;;
'Install pacman-contrib')
instpkg "pacman-contrib" ""
;;
'Install downgrade')
instpkg "" "downgrade"
;;
'Install trizen')
if(confirm "Trizen allow you to access the AUR applications.\nBecause is not possible to compile applications as root,\nthis installer create an aurbuilder user.\n\nInstall trizen ?") then
clear
checkaurdependencies
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/trizen.git
cd trizen
sudo -u aurbuilder makepkg -si
fi
;;
'Install aurman')
if(confirm "Aurman allow you to access the AUR applications.\nBecause is not possible to compile applications as root,\nthis installer create an aurbuilder user.\n\nInstall aurman ?") then
clear
checkaurdependencies
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/aurman.git
cd aurman
sudo -u aurbuilder gpg --recv-key 465022E743D71E39
sudo -u aurbuilder makepkg -si
#sudo -u aurbuilder makepkg -si --skippgpcheck
fi
;;
'Install yay')
if(confirm "Yay allow you to access the AUR applications.\nBecause is not possible to compile applications as root,\nthis installer create an aurbuilder user.\n\nInstall yay ?") then
clear
checkaurdependencies
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/yay.git
cd yay
sudo -u aurbuilder makepkg -si
fi
;;
'Install yaourt')
if(confirm "Yaourt allow you to access the AUR applications.\nBecause is not possible to compile applications as root,\nthis installer create an aurbuilder user.\n\nInstall yaourt ?") then
clear
checkaurdependencies
checkpackagequerydependencies
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/yaourt.git
cd yaourt
sudo -u aurbuilder makepkg -si
fi
;;
'Install pkgstats')
pacman -S --needed pkgstats
;;
'Install aurvote')
instpkg "" "aurvote"
;;
esac
exit 0