obosdi-pkg/updates/menu
2018-07-22 17:28:36 +02:00

150 lines
4.3 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/yaourt ]; then
options+=("Upgrade with yaourt" "yaourt -Syua")
aurhelper=1
fi
if [ ! "$aurhelper" = "1" ]; then
options+=("Install trizen" "")
options+=("Install yaourt" "(End of life)")
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+=("" "")
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" "")
fi
if [ ! -f /usr/bin/pkgstats ]; then
options+=("Install pkgstats" "")
fi
if [ ! -f /usr/bin/aurvote ]; then
options+=("Install aurvote" "")
fi
if [ ! -f /usr/bin/trizen ]; then
options+=("Install trizen" "")
fi
if [ ! -f /usr/bin/yaourt ]; then
options+=("Install yaourt" "(End of life)")
fi
fi
sel=$(whiptail --backtitle "$apptitle" --title "Updates Menu :" --menu "" --cancel-button "Back" 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=""
else
usermod -m -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
mkdir /tmp/aurbuilder
chmod 777 /tmp/aurbuilder
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/package-query.git
cd package-query
sudo -u aurbuilder makepkg -si
fi
}
checkarchlinuxfrrepo(){
if [ ! $(cat /etc/pacman.conf | grep "archlinuxfr") ]; then
echo "[archlinuxfr]" >> /etc/pacman.conf
echo "SigLevel = Never" >> /etc/pacman.conf
echo 'Server = http://repo.archlinux.fr/$arch' >> /etc/pacman.conf
pacman -Syy
fi
}
clear
case $sel in
'Upgrade') pacman -Syu;;
'Upgrade with trizen')
checkaurdependencies
sudo -u aurbuilder trizen -Syu
;;
'Upgrade with yaourt')
checkaurdependencies
sudo -u aurbuilder yaourt -Syua
;;
'Clean orphan') pacman -Rns $(pacman -Qqtd);;
'Clean cache') pacman -Sc;;
'Edit pacman.conf') nano /etc/pacman.conf;;
'Edit mirrorlist') nano /etc/pacman.d/mirrorlist;;
'Update keyring') pacman -S archlinux-keyring;;
'Refresh pacman keys') pacman-key --refresh-keys;;
'Remove db.lck') rm /var/lib/pacman/db.lck;;
'Install downgrade')
instpkg "" "downgrade"
;;
'Install trizen')
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 trizen ?") then
clear
checkaurdependencies
mkdir /tmp/aurbuilder
chmod 777 /tmp/aurbuilder
cd /tmp/aurbuilder
sudo -u aurbuilder git clone https://aur.archlinux.org/trizen.git
cd trizen
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
mkdir /tmp/aurbuilder
chmod 777 /tmp/aurbuilder
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')
pacman -S --needed aurvote
;;
esac
exit 0