#!/bin/bash set -e # w/ -k hence can fail alright # arg expected to be $pkg function upgradesbo { [[ -z $1 ]] && echo function upgradesbo needs an argument && exit 1 echo -n upgrading package $1 ... sbopkg -B -k -i $1 > /tmp/$1.`date +%s`.log && echo done || echo already } # idem but w/o -k # arg expected to be $pkg.sqf function upgradequeue { [[ -z $1 ]] && echo function upgradequeue needs an argument && exit 1 echo -n upgrading queue $1 ... sbopkg -B -i $1 > /tmp/$1.`date +%s`.log && echo done || echo FAIL } sbopkg -q -u sbopkg -q -r pkgs=`sbopkg -q -c | grep -B1 'POTENTIAL UPDATE' | grep -vE '^[[:space:]]|^--' | cut -f1 -d:` if [[ -z $pkgs ]]; then echo nothing to do else echo pkgs are $pkgs fi echo for pkg in $pkgs; do echo -n preparing queue file for $pkg ... sqg -p $pkg >/dev/null 2>&1 && echo done || echo FAIL if [[ -f /var/lib/sbopkg/queues/$pkg.sqf ]]; then echo processing queue file /var/lib/sbopkg/queues/$pkg.sqf deps=`cat /var/lib/sbopkg/queues/$pkg.sqf` echo deps are $deps upgradequeue $pkg.sqf #for dep in $deps; do # upgradesbo $dep # echo #done; unset dep unset deps echo -n clean-up queue file /var/lib/sbopkg/queues/$pkg.sqf ... rm -f /var/lib/sbopkg/queues/$pkg.sqf && echo done || FAIL echo else echo no queue file for $pkg hence updating upgradesbo $pkg echo fi done; unset pkg unset pkgs cat <