summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-06-06 16:17:39 -0600
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-06-06 16:17:39 -0600
commit2816cab18aae8bc8c7fc796cdfa938c8f15cd0c8 (patch)
treee98cb58a743d5bab0ea0052c6033b59e0bea3b6f
parentdebfee16574015051424a3785715ebb92012ffbd (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-xsrc/toru/toru-path2
-rwxr-xr-xsrc/toru/toru-utils47
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