diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-06-06 16:17:39 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-06-06 16:17:39 -0600 |
commit | 2816cab18aae8bc8c7fc796cdfa938c8f15cd0c8 (patch) | |
tree | e98cb58a743d5bab0ea0052c6033b59e0bea3b6f | |
parent | debfee16574015051424a3785715ebb92012ffbd (diff) |
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
-rwxr-xr-x | src/toru/toru-path | 2 | ||||
-rwxr-xr-x | 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 |