#!/bin/bash . ./lib options=() if [ -f /usr/bin/yaourt ]; then options+=("Upgrade with yaourt" "yaourt -Syua") aurhelper=1 fi if [ -f /usr/bin/packer ]; then options+=("Upgrade with packer" "packer -Syu") aurhelper=1 fi if [ ! "$aurhelper" = "1" ]; then options+=("Install yaourt" "") options+=("Install packer" "") 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+=("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 [ ! -f /usr/bin/downgrade ]; then options+=("Install downgrade" "") options+=("" "") fi if [ "$aurhelper" = "1" ]; then if [ ! -f /usr/bin/pkgstats ]; then options+=("Install pkgstats" "") options+=("" "") fi if [ ! -f /usr/bin/aurvote ]; then options+=("Install aurvote" "") options+=("" "") fi if [ ! -f /usr/bin/yaourt ]; then options+=("Install yaourt" "") fi if [ ! -f /usr/bin/packer ]; then options+=("Install packer" "") 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 [ ! $(id -u "aurbuilder") ]; then newpass=$(< /dev/urandom tr -dc "@#*%&_A-Z-a-z-0-9" | head -c16) useradd -r -N -M -d /home/.aurbuilder -s /usr/bin/nologin aurbuilder echo -e "$newpass\n$newpass\n"|passwd aurbuilder newpass="" 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 } 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 yaourt') checkaurdependencies sudo -u aurbuilder yaourt -Syua ;; 'Upgrade with packer') checkaurdependencies sudo -u aurbuilder packer -Syu ;; 'Clean orphan') pacman -Rns $(pacman -Qqtd);; 'Clean cache') pacman -Sc;; 'Edit pacman.conf') nano /etc/pacman.conf;; 'Edit mirrorlist') nano /etc/pacman.d/mirrorlist;; 'Refresh pacman keys') pacman-key --refresh-keys;; 'Remove db.lck') rm /var/lib/pacman/db.lck;; 'Install downgrade') checkarchlinuxfrrepo pacman -S --needed downgrade ;; '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 checkarchlinuxfrrepo pacman -S --needed yaourt fi ;; 'Install packer') if(confirm "Packer allow you to access the AUR applications.\nBecause is not possible to compile applications as root,\nthis installer create an aurbuilder user.\n\nInstall packer ?") then clear checkaurdependencies checkarchlinuxfrrepo pacman -S --needed packer fi ;; 'Install pkgstats') pacman -S --needed pkgstats ;; 'Install aurvote') pacman -S --needed aurvote ;; esac exit 0