On 03/08/11 14:52, Dave Reisner wrote:
* add paccache to .gitignore

Hmmm....    where?

* 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[@]}"


Reply via email to