From 28b4957fc3de418938d518067a51c353959226cc Mon Sep 17 00:00:00 2001 From: Nicolas Reynolds Date: Fri, 15 Jul 2011 01:16:45 -0300 Subject: Toru caches PKGBUILD paths --- toru | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'toru') diff --git a/toru b/toru index f74581d..153d825 100755 --- a/toru +++ b/toru @@ -135,12 +135,11 @@ is_repo() { update() { local update_sync_file=false # The PKGBUILDs found - local pkgbuilds=() + local -a pkgbuilds=() # The list of pkgname-fullpkgver - local packages_in_abs=() - local packages_in_sync=() - local need_update=() + local -a packages_in_abs=() local -a pkg_updates=() + local -a package_paths=() # Traverse all specified repos for _repo in $@; do @@ -158,6 +157,7 @@ update() { else pkgbuilds=($(find ${_repo} -maxdepth 2 -type f -name 'PKGBUILD' -newer ${lastsyncfile})) packages_in_abs=($(read_cache ${_repo})) + package_paths=($(read_cache paths)) $quiet || msg2 "Getting ${#packages_in_abs[@]} packages from cache" fi @@ -190,14 +190,20 @@ update() { unset package_${_pkg} >/dev/null 2>&1 # Fill the list of packages to find packages_in_abs+=($_pkg-$(get_full_version ${epoch:-0} $pkgver $pkgrel)) + package_paths+=($_pkg:$_pkgpath) done # end pkgnames unset pkgbase pkgname pkgver pkgrel source epoch done # end pkgbuilds -# Sync! +# Sync! (Only if there was an actual sync) ${update_sync_file} && lastsync ${lastsyncfile} + if [ "${lastsyncfile}" -nt "${TORUPATH}/paths.cache" ]; then + print_package_array "${package_paths[@]}" > $TMPDIR/paths + store_cache paths $TMPDIR/paths + fi + # If there isn't an update cache or it's older than the last update, we check if [ "${lastsyncfile}" -nt "${TORUPATH}/${_repo}.updates.cache" ]; then @@ -233,18 +239,19 @@ update() { # FIXME this works all right but it's unset once the while ends #pkg_updates+=("$_pkg") +# Fix for the above problem, but it access the file every time instead of +# puting all packages together once echo $_pkg >> ${TMPDIR}/updates fi done # end need_line - echo "${pkg_updates[@]}" unset _pkg _syncver _absver need_line - # Save the cache store_cache ${_repo} ${TMPDIR}/packages_in_abs +# See above FIXME # print_package_array "${updates[@]}" > ${TMPDIR}/updates store_cache ${_repo}.updates ${TMPDIR}/updates -- cgit v1.2.3-54-g00ecf