X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-rmpackage;h=98eac6ee48b53f75a21738df9961377e2054dafc;hb=69491d14441cfc893e18e1c60c13c995b93002c9;hp=1cb39566f37a832c322822068046373e04114f2c;hpb=214fd7d30098cb9dad0fb2a7b522b262512d3892;p=zpackage diff --git a/zpm-rmpackage b/zpm-rmpackage index 1cb3956..98eac6e 100755 --- a/zpm-rmpackage +++ b/zpm-rmpackage @@ -5,14 +5,23 @@ pkgfile=${ZPM_PACKAGE_FILE:-${ZPMDB:-/var/lib/zpm/local.db}} verbose=0 # newpackage -f pkgfile $pkgid -while getopts :f:v opt; do +while getopts :f:vm:s:S: opt; do case $opt in f) pkgfile="$OPTARG" ;; v) verbose=1 ;; + m) message="$OPTARG" ;; + s) status="$status -s $OPTARG" ;; + S) exclude="$exclude -S $OPTARG" ;; esac done shift $(( OPTIND - 1)) +if [ -z "$message" ]; then + message=null +else + message=$(zpm quote -q "$message") +fi + die() { echo $* 1>&2 exit 1 @@ -28,20 +37,21 @@ fi { printf ".bail on\n" + printf ".echo on\n" printf "begin;\n" for pkgstr in "$@"; do - pkgid=$(zpm findpkg -f $pkgfile "$pkgstr") + pkgid=$(zpm findpkg $status $exclude -f $pkgfile "$pkgstr") + if [ -z "$pkgid" ]; then + continue; + fi if [ $verbose -gt 0 ]; then - if [ -z "$pkgid" ]; then - warn "$pkgstr not found" - continue; - fi if [ $verbose -gt 1 ]; then warn "found %s -> %s\n" "$pkgstr", "$pkgid" fi fi pkgid=$(zpm quote "$pkgid") printf "delete from packages_pkgid where pkgid = '$pkgid';\n" + printf "insert into zpmlog (action, target, info) values ('rmpackage','%s',%s);\n" "$pkgid" "$message" done printf "commit;\n" } | zpm shell $pkgfile