diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2022-09-10 23:00:26 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2023-12-14 17:13:11 -0500 |
commit | 794ecfb27dc50806f2f2410fdf925277c931e2b9 (patch) | |
tree | c847372ae0a7ba52571d7520d1b56a3352b350fd | |
parent | a341100f8109746a8011ad7c36de812be0a56ee6 (diff) |
[parabola-dependents]: bypass db sync in DEBUG mode
-rwxr-xr-x | parabola-dependents | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/parabola-dependents b/parabola-dependents index e55d1f8..baa66e5 100755 --- a/parabola-dependents +++ b/parabola-dependents @@ -1,6 +1,7 @@ #!/bin/bash readonly ABS_DIR=/packages/abslibre +readonly DEBUG=0 readonly BE_VERBOSE=$( [[ "${1}" == '-v' ]] && echo 1 || echo 0 ) ; (( $BE_VERBOSE )) && shift ; readonly PKGBUILD_SED_RX='s|/PKGBUILD$|| ; s|([^/]*/)?([^/]+)/([^/]+)$|\2 \3|' @@ -11,6 +12,7 @@ readonly REPOS=( nonprism{-testing,} nonsystemd{-testing,} libre{-testing,} kernels{-testing,} testing core extra community{-testing,} pcr{-testing,} nonprism-multilib{-testing,} nonsystemd-multilib libre-multilib{-testing,} multilib{-testing,} pcr-multilib{-testing,} ) +readonly TEMP_DB_NAME=parabola-dependents readonly DUMMY_PKGBUILD='pkgname=%s pkgver=0.0.0 pkgrel=42 @@ -85,17 +87,22 @@ LogError() # (source_file func_name line_n) Init() { - readonly DB_DIR="$(su $(logname) -c 'mktemp -d -t parabola-dependents-XXXXXXXXXX')" + readonly DB_DIR="$( db_dir=$(ls -1 -d /tmp/${TEMP_DB_NAME}.??? 2> /dev/null | head -n 1) + [[ -d "${db_dir}" ]] && + echo "${db_dir}" || + su $(logname) -c "mktemp -d -p /tmp -t ${TEMP_DB_NAME}.XXX" )" readonly CFG_FILE=${DB_DIR}/pacman-all.conf readonly OPTS="--dbpath=${DB_DIR} --config=${CFG_FILE}" - printf "[options]\nArchitecture = auto\n" > ${CFG_FILE} - for repo in ${REPOS[@]} - do printf "[${repo}]\nInclude = /etc/pacman.d/mirrorlist\n" >> ${CFG_FILE} - done - - Log "updating database ...." - pacman ${OPTS} -Sy &> /dev/null || true + if ! (( DEBUG )) || ! (( $(ls -1 /tmp/${TEMP_DB_NAME}.??? | wc -l) )) + then Log "updating database ...." + printf "[options]\nArchitecture = auto\n" > ${CFG_FILE} + for repo in ${REPOS[@]} + do printf "[${repo}]\nInclude = /etc/pacman.d/mirrorlist\n" >> ${CFG_FILE} + done + pacman ${OPTS} -Sy &> /dev/null + else Log "not updating database in DEBUG mode - delete ${DB_DIR} to sync" + fi # create dummy for missing dependency package or sodep local dep pkgbase dummy_pkg @@ -111,15 +118,16 @@ Init() printf "${DUMMY_PKGBUILD}\n" "${pkgbase}" "${dep}" > ./PKGBUILD su $(logname) -c 'makepkg --force &> /dev/null' - dummy_pkg=${DEP}-0.0.0-42-$(uname -m).pkg.tar.xz + dummy_pkg=${pkgbase}-0.0.0-42-$(uname -m).pkg.tar.xz [[ -f ./${dummy_pkg} ]] - repo-add --new parabola-dependents.db.tar ./${dummy_pkg} &> /dev/null + repo-add ${TEMP_DB_NAME}.db.tar ./${dummy_pkg} &> /dev/null Log "dummy package '${pkgbase}' created" - printf "[parabola-dependents]\nServer = file://${DB_DIR}\n" >> ${CFG_FILE} + printf "[${TEMP_DB_NAME}]\nServer = file://${DB_DIR}\n" >> ${CFG_FILE} + + pacman ${OPTS} -Sy &> /dev/null fi - pacman ${OPTS} -Sy &> /dev/null } IsArchRepo() # (repo) @@ -205,7 +213,7 @@ PrintReport() Cleanup() { - if [[ -d "${DB_DIR}" && "${DB_DIR}" =~ parabola-dependents ]] + if [[ -d "${DB_DIR}" && "${DB_DIR}" =~ ^${TEMP_DB_NAME}\....$ ]] && ! (( DEBUG )) then rm --force --recursive ${DB_DIR} fi } |