* add paccache to .gitignore * change error verbiage when run as root * delete sigs along with packages * fix bug in diskspace calculations Signed-off-by: Dave Reisner <dreisner@archlinux.org> --- This should cover Allan and Dan's concerns, as well as addressing a silly bug I found in counting diskspace saved. contrib/paccache.in | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/contrib/paccache.in b/contrib/paccache.in index 0bd0cf7..34ca06b 100755 --- a/contrib/paccache.in +++ b/contrib/paccache.in @@ -110,10 +110,11 @@ pkgfilter() { size_to_human() { awk -v size="$1" ' BEGIN { - suffix[1] = "KiB" - suffix[2] = "MiB" - suffix[3] = "GiB" - suffix[4] = "TiB" + suffix[1] = "B" + suffix[2] = "KiB" + suffix[3] = "MiB" + suffix[4] = "GiB" + suffix[5] = "TiB" count = 1 while (size > 1024) { @@ -142,7 +143,7 @@ runcmd() { } summarize() { - local -i filecount=$# + local -i filecount=$1; shift local seenarch= seen= arch= name= local -r pkg_re='(.+)-[^-]+-[0-9]+-([^.]+)\.pkg.*' @@ -204,7 +205,7 @@ EOF } if (( ! UID )); then - error "Bad dog, no biscuit. You will be prompted for privilege escalation." + error "Do not run this script as root. You will be prompted for privilege escalation." exit 42 fi @@ -277,8 +278,19 @@ if (( ! ${#candidates[*]} )); then exit 1 fi +# grab this prior to signature scavenging +pkgcount=${#candidates[*]} + +# copy the list, merging in any found sigs +for cand in "${candidates[@]}"; do + candtemp+=("$cand") + [[ -f $cand.sig ]] && candtemp+=("$cand.sig") +done +candidates=("${candtemp[@]}") +unset candtemp + # do this before we destroy anything -totalsaved=$(@SIZECMD@ "${candidates[@]}" | awk '{ sum = $1 } END { print sum }') +totalsaved=$(@SIZECMD@ "${candidates[@]}" | awk '{ sum += $1 } END { print sum }') # crush. kill. destroy. (( verbose )) && cmdopts+=(-v) @@ -288,4 +300,4 @@ elif (( move )); then runcmd mv "${cmdopts[@]}" "${candidates[@]}" "$movedir" fi -summarize "${candidates[@]}" +summarize "$pkgcount" "${candidates[@]}" -- 1.7.6