* 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 <[email protected]>
---
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


Reply via email to