You are not logged in.

#1 2010-02-14 20:04:53

ekrek4
Member
Registered: 2008-08-25
Posts: 24

automatic aur packages upgrade

Hi,
before I found out that

 yaourt -Syu --aur

do the trick, I wrote script to automatic update packages from AUR (with dialog interface):

#!/bin/bash

PKG=""
VER=""
PKG_OBS=()
NPKG=`pacman -Qm | wc -l`

c=1
for pkg in `pacman -Qm | tr " " +`;
do
    PER=`echo "scale=4; 100 / $NPKG *$c" | bc | cut -f1 -d.`
    [ $c -eq $NPKG ] && PER=100
    c=$((c+1))
    PKG=${pkg%+*}
    VER=${pkg##*+}
    echo $PER | dialog --title "Synchronizing packeges database" --backtitle AURSYNC --gauge ${PKG-""} 10 50
    VER_REP=`no | yaourt -Si $PKG 2> /dev/null  | grep Version | cut -d' ' -f2`
    if [ -n "$VER_REP" -a "$VER" != "$VER_REP" ]; then
        echo $PKG local=$VER aur=$VER_REP
        PKG_OBS[${#PKG_OBS[*]}]=$PKG
    fi
done

DIALOG_CMD=""
for C in ${PKG_OBS[*]};
do
    DIALOG_CMD="${DIALOG_CMD+$DIALOG_CMD }$C `pacman -Qi $C | grep Description | cut -f2 -d: | tr " " "_"` on"
done

if [ -z "$DIALOG_CMD" ]; then
    dialog --title "Packeges upgrading" --backtitle AURSYNC --msgbox "No packeges to upgrade" 10 40
    exit 1
else
    DIALOG_TMP=/tmp/.${0##*/}
    dialog --title "Choose packeges to upgrade" --backtitle AURSYNC \
        --checklist "upgrading packeges" 10 40 5 $DIALOG_CMD 2> $DIALOG_TMP
    PKG_OBS=`cat $DIALOG_TMP | tr -d "\""`
    rm $DIALOG_TMP
    [ -n "$PKG_OBS" ] && yaourt -S $PKG_OBS
fi

Maybe someone is interested anyway big_smile

Offline

Board footer

Powered by FluxBB