diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2020-09-19 00:53:30 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2020-11-20 22:53:31 -0500 |
commit | 48cacf8a34bbc9e7067190f8a250f85c963e52d9 (patch) | |
tree | 749564a92222bbd8a04cfea652fb569c7b330729 /src | |
parent | 0720950df77864f65f110a5cb37351c53e96b149 (diff) |
whitespace
Diffstat (limited to 'src')
-rwxr-xr-x | src/toru/toru-path | 208 |
1 files changed, 104 insertions, 104 deletions
diff --git a/src/toru/toru-path b/src/toru/toru-path index d9c35e6..0d3fc70 100755 --- a/src/toru/toru-path +++ b/src/toru/toru-path @@ -26,113 +26,113 @@ source "$(librelib messages)" usage() { - print 'Usage: [T=$TORUPATH] [V=true] [F=true] %q [-h]' "${0##*/}" - print 'Create/update the `$TORUPATH/paths.tch` database.' - echo - prose 'The file `%s` is a Tokyo Cabinet database a mapping between paths - to PKGBUILD files and `pkgname`s and `pkgbase`s. PKGBUILD files - are scanned for in `$ABSROOT` in each of `$REPOS`.' \ - '$TORUPATH/paths.tch' - echo - prose 'Additionally, it creates a timestamp file at `%s`, so that skip - PKGBUILD files that have not changed since the previous - invocation.' \ - '$TORUPATH/lastsync.paths' - echo - print 'Configuration:' - flag \ - 'libretools.conf : TORUPATH' 'Where to store `paths.tch`' \ - 'libretools.conf : REPOS' 'Which repositories to consider from `$ABSROOT`' \ - 'abs.conf : ABSROOT' 'Where to find PKGBUILD files' - echo - print 'Options:' - flag \ - 'T=$TORUPATH' 'Override libretools.conf:TORUPATH' \ - 'V=true' 'Be verbose' \ - 'F=true' 'Ignore timestamps; force re-scan all PKGBUILDs' \ - '-h' 'Show this message' + print 'Usage: [T=$TORUPATH] [V=true] [F=true] %q [-h]' "${0##*/}" + print 'Create/update the `$TORUPATH/paths.tch` database.' + echo + prose 'The file `%s` is a Tokyo Cabinet database a mapping between paths + to PKGBUILD files and `pkgname`s and `pkgbase`s. PKGBUILD files + are scanned for in `$ABSROOT` in each of `$REPOS`.' \ + '$TORUPATH/paths.tch' + echo + prose 'Additionally, it creates a timestamp file at `%s`, so that skip + PKGBUILD files that have not changed since the previous + invocation.' \ + '$TORUPATH/lastsync.paths' + echo + print 'Configuration:' + flag \ + 'libretools.conf : TORUPATH' 'Where to store `paths.tch`' \ + 'libretools.conf : REPOS' 'Which repositories to consider from `$ABSROOT`' \ + 'abs.conf : ABSROOT' 'Where to find PKGBUILD files' + echo + print 'Options:' + flag \ + 'T=$TORUPATH' 'Override libretools.conf:TORUPATH' \ + 'V=true' 'Be verbose' \ + 'F=true' 'Ignore timestamps; force re-scan all PKGBUILDs' \ + '-h' 'Show this message' } main() { - setup_traps - - # TODO: better option parsing - VERBOSE=${V:-false} - FORCE=${F:-false} - # TODO: add an option to override/augment libretools.conf:REPOS - if [[ $# != 0 ]]; then - if [[ $# == 1 && "$1" == '-h' ]]; then - usage - return $EXIT_SUCCESS - fi - usage >&2 - return $EXIT_INVALIDARGUMENT - fi - - declare -i ret=0 - if [[ -n "${T:-}" ]]; then - load_conf libretools.conf REPOS || ret=$? - TORUPATH=$T - else - load_conf libretools.conf TORUPATH REPOS || ret=$? - fi - load_conf abs.conf ABSROOT || ret=$? - [[ $ret = 0 ]] || exit $ret - - if [ ! -w "$TORUPATH" ]; then - error "Toru's path isn't writable. Please check your TORUPATH: %q" "$TORUPATH" - exit $EXIT_NOPERMISSION - fi - - local lastsyncfile=${TORUPATH}/lastsync.paths - local pathfile=${TORUPATH}/paths.tch - - if [ ! -e "${pathfile}" ]; then - tcamgr create "${pathfile}" - fi - - local fullrepos=() - # This loops over ${REPOS[@]} backward. This is because early entries - # in REPOS have higher precidence, but the way this is implemented, - # the later entries have precedence, so we need to flip the order. - for (( i = ${#REPOS[@]}-1 ; i >= 0 ; i-- )); do - $VERBOSE && msg "Processing [%s]" "${REPOS[$i]}" - - if [ -d "${ABSROOT}/${REPOS[$i]}" ]; then - fullrepos+=("${ABSROOT}/${REPOS[$i]}") - fi - done - - # Find PKGBUILDs in ${fullrepos[@]} - find_args=("${fullrepos[@]}" -mindepth 2 -maxdepth 3 -type f -name PKGBUILD) - if [[ -e $lastsyncfile ]] && ! $FORCE; then - # if lastfilesync exists, only look at things that have - # changed since then (unless $FORCE is on) - find_args+=(-newer "${lastsyncfile}") - fi - IFS=$'\n' - pkgbuilds=($(find "${find_args[@]}")) - - # Add information from each of the PKGBUILDs to the toru cache. - msg "Updating path cache" - msg2 "%d PKGBUILDs to update" ${#pkgbuilds[@]} - local _pkgbuild fullpath - for _pkgbuild in "${pkgbuilds[@]}"; do - # plain "$_pkgbuild" - if ! load_PKGBUILD "${_pkgbuild}" &>/dev/null; then - error "%q contains errors, skipping" "${_pkgbuild}" - continue - fi - - fullpath="$(dirname -- "${_pkgbuild}")" - - for _pkg in "${pkgbase}" "${pkgname[@]}" "${provides[@]}"; do - $VERBOSE && msg2 '%s -> %s' "${_pkg}" "${fullpath}" - tcamgr put "${pathfile}" "${_pkg%%[<>=]*}" "${fullpath}" - done - done - - date +%s > "${lastsyncfile}" + setup_traps + + # TODO: better option parsing + VERBOSE=${V:-false} + FORCE=${F:-false} + # TODO: add an option to override/augment libretools.conf:REPOS + if [[ $# != 0 ]]; then + if [[ $# == 1 && "$1" == '-h' ]]; then + usage + return $EXIT_SUCCESS + fi + usage >&2 + return $EXIT_INVALIDARGUMENT + fi + + declare -i ret=0 + if [[ -n "${T:-}" ]]; then + load_conf libretools.conf REPOS || ret=$? + TORUPATH=$T + else + load_conf libretools.conf TORUPATH REPOS || ret=$? + fi + load_conf abs.conf ABSROOT || ret=$? + [[ $ret = 0 ]] || exit $ret + + if [ ! -w "$TORUPATH" ]; then + error "Toru's path isn't writable. Please check your TORUPATH: %q" "$TORUPATH" + exit $EXIT_NOPERMISSION + fi + + local lastsyncfile=${TORUPATH}/lastsync.paths + local pathfile=${TORUPATH}/paths.tch + + if [ ! -e "${pathfile}" ]; then + tcamgr create "${pathfile}" + fi + + local fullrepos=() + # This loops over ${REPOS[@]} backward. This is because early entries + # in REPOS have higher precidence, but the way this is implemented, + # the later entries have precedence, so we need to flip the order. + for (( i = ${#REPOS[@]}-1 ; i >= 0 ; i-- )); do + $VERBOSE && msg "Processing [%s]" "${REPOS[$i]}" + + if [ -d "${ABSROOT}/${REPOS[$i]}" ]; then + fullrepos+=("${ABSROOT}/${REPOS[$i]}") + fi + done + + # Find PKGBUILDs in ${fullrepos[@]} + find_args=("${fullrepos[@]}" -mindepth 2 -maxdepth 3 -type f -name PKGBUILD) + if [[ -e $lastsyncfile ]] && ! $FORCE; then + # if lastfilesync exists, only look at things that have + # changed since then (unless $FORCE is on) + find_args+=(-newer "${lastsyncfile}") + fi + IFS=$'\n' + pkgbuilds=($(find "${find_args[@]}")) + + # Add information from each of the PKGBUILDs to the toru cache. + msg "Updating path cache" + msg2 "%d PKGBUILDs to update" ${#pkgbuilds[@]} + local _pkgbuild fullpath + for _pkgbuild in "${pkgbuilds[@]}"; do + # plain "$_pkgbuild" + if ! load_PKGBUILD "${_pkgbuild}" &>/dev/null; then + error "%q contains errors, skipping" "${_pkgbuild}" + continue + fi + + fullpath="$(dirname -- "${_pkgbuild}")" + + for _pkg in "${pkgbase}" "${pkgname[@]}" "${provides[@]}"; do + $VERBOSE && msg2 '%s -> %s' "${_pkg}" "${fullpath}" + tcamgr put "${pathfile}" "${_pkg%%[<>=]*}" "${fullpath}" + done + done + + date +%s > "${lastsyncfile}" } main "$@" |