]> pd.if.org Git - zpackage/commitdiff
use getopts in gc
authorNathan Wagner <nw@hydaspes.if.org>
Sat, 15 Dec 2018 16:27:57 +0000 (16:27 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Sat, 15 Dec 2018 16:27:57 +0000 (16:27 +0000)
zpm-gc

diff --git a/zpm-gc b/zpm-gc
index 06807efa8f1d1b374450644f9dec450511b40302..08ba1e19c85f73446da5472d9c4d20defca279c2 100755 (executable)
--- a/zpm-gc
+++ b/zpm-gc
@@ -42,7 +42,13 @@ remove_removed_packages=0
 # -vV compactify the database file
 vacuum=1
 
-db=${1:-${ZPMDB:-/var/lib/zpm/local.db}}
+db=${ZPMDB:-/var/lib/zpm/local.db}
+
+while getopts 'f:'; do
+       case $opt in
+               f) db="$OPTARG" ;;
+       esac
+done
 
 if [ -z "$db" ]; then
        echo must specify database file
@@ -58,19 +64,19 @@ export ZPMDB
 
 # remove failed packages
 for pkg in $(zpm list -s failed); do
-       zpm log -i -a 'gc removing' -t "$pkg"
-       zpm rmpackage "$pkg"
+       zpm rmpackage -m 'gc removed failed' "$pkg"
 done
 
 for pkg in $(zpm list -s dryrun); do
-       zpm log -i -a 'gc removing' -t "$pkg"
-       zpm rmpackage "$pkg"
+       zpm rmpackage -m 'gc removed dryrun' "$pkg"
 done
 
 # remove incomplete packages
 # TODO use temporary gc delete log trigger?
 if [ $remove_incomplete_packages -ne 0 ]; then
-       zpm shell $ZPMDB "delete from packages where hash is null"
+       for pkg in $(zpm list -F 'hash is null'); do
+               zpm rmpackage -m 'gc removed incomplete' $pkg
+       done
 fi
 
 # remove old version packages, unless preserved