#!/bin/bash . libremessages . $(librelib conf.sh) load_files libretools check_vars libretools TORUPATH || exit 1 LASTSYNCFILE=${TORUPATH}/lastsync FORCE=false QUIET=false DEBUG=false # Stores the lastsync date lastsync() { local lastsyncfile lastsyncfile=$1 [ -e ${lastsyncfile} -a ! -w ${lastsyncfile} ] && { error "The sync date can't be saved. ${lastsyncfile} isn't writable." return 1 } date +%s > ${lastsyncfile} touch ${lastsyncfile} } get_dbs() { local _db for _db in /var/lib/pacman/sync/*.db; do bsdtar tf ${_db} | cut -d'/' -f1 | sort -u done } # repo paths get_pkgbuilds() { pkgbuilds=() if [[ $FORCE = true || ! -e ${LASTSYNCFILE} ]]; then $QUIET || warning "Forcing upgrade" # Get all PKGBUILDs extra="" else # Only find newer than lastsyncfile and read everything else from cache extra=" -newer ${LASTSYNCFILE}" fi # Return all PKGBUILDs found find $@ -mindepth 2 -maxdepth 3 -type f -name 'PKGBUILD' ${extra} } # End inmediately but print a useful message trap_exit() { error "$@" exit 1 } # Trap signals from makepkg set -E trap 'trap_exit "TERM signal caught. Exiting..."' TERM HUP QUIT trap 'trap_exit "Aborted by user! Exiting..."' INT trap 'trap_exit "An unknown error has occurred. Exiting..."' ERR