From 2816cab18aae8bc8c7fc796cdfa938c8f15cd0c8 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 6 Jun 2015 16:17:39 -0600 Subject: toru-utils: tidy up - use libremessages:setup_traps instead of the copy/pasted solution - get_pkgbuilds: don't leak the "extra" variable - fix up quoting - get_pkgbuilds: don't use the global LASTSYNCFILE, get it as an argument * toru-path: adjust for this --- src/toru/toru-path | 2 +- src/toru/toru-utils | 47 ++++++++++++++++++----------------------------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/src/toru/toru-path b/src/toru/toru-path index 6d9ae8e..a81ee53 100755 --- a/src/toru/toru-path +++ b/src/toru/toru-path @@ -44,7 +44,7 @@ for (( i = ${#REPOS[@]}-1 ; i >= 0 ; i-- )); do [ -d "${ABSROOT}${REPOS[$i]}" ] && \ fullrepos+=("${ABSROOT}${REPOS[$i]}") done -pkgbuilds=($(get_pkgbuilds ${fullrepos[@]})) +pkgbuilds=($(get_pkgbuilds "${LASTSYNCFILE}" "${fullrepos[@]}")) msg "Updating path cache" msg2 "${#pkgbuilds[@]} PKGBUILDs to update" diff --git a/src/toru/toru-utils b/src/toru/toru-utils index bedaf79..edf7fb6 100755 --- a/src/toru/toru-utils +++ b/src/toru/toru-utils @@ -21,7 +21,9 @@ . libremessages . "$(librelib conf.sh)" load_files libretools -check_vars libretools TORUPATH || exit 1 +check_vars libretools TORUPATH REPOS || exit 1 +load_files abs +check_vars abs ABSROOT || exit 1 LASTSYNCFILE=${TORUPATH}/lastsync FORCE=false @@ -30,53 +32,40 @@ DEBUG=false # Stores the lastsync date lastsync() { - local lastsyncfile + local lastsyncfile="$1" - lastsyncfile=$1 - - [ -e ${lastsyncfile} -a ! -w ${lastsyncfile} ] && { - error "The sync date can't be saved. ${lastsyncfile} isn't writable." + if [[ -e "${lastsyncfile}" -a ! -w "${lastsyncfile}" ]]; then + error "The sync date can't be saved: file not writable: %q" "${lastsyncfile}" return 1 - } + fi - date +%s > ${lastsyncfile} - touch ${lastsyncfile} + 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 + bsdtar tf "${_db}" | cut -d/ -f1 | sort -u done } # repo paths get_pkgbuilds() { - pkgbuilds=() + local lastsyncfile="$1"; shift + # Only find newer than lastsyncfile and read + # everything else from cache + local extra=(-newer "${lastsyncfile}") - if [[ $FORCE = true || ! -e ${LASTSYNCFILE} ]]; then + 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}" + extra=() 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 + find "$@" -mindepth 2 -maxdepth 3 -type f -name 'PKGBUILD' "${extra[@]}" } -# 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 +setup_traps -- cgit v1.2.2