X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-rmpackage;h=98eac6ee48b53f75a21738df9961377e2054dafc;hb=2ac486ab18adbbb84563eafc0d67fa8da6ca7822;hp=1292eda98dc7be6d592efc652a919e4160bb5843;hpb=340295b15118210f97688635d562963b3fdcb542;p=zpackage diff --git a/zpm-rmpackage b/zpm-rmpackage index 1292eda..98eac6e 100755 --- a/zpm-rmpackage +++ b/zpm-rmpackage @@ -5,17 +5,21 @@ pkgfile=${ZPM_PACKAGE_FILE:-${ZPMDB:-/var/lib/zpm/local.db}} verbose=0 # newpackage -f pkgfile $pkgid -while getopts :f:vm: opt; do +while getopts :f:vm:s:S: opt; do case $opt in f) pkgfile="$OPTARG" ;; v) verbose=1 ;; - m) message=$(zpm quote "$OPTARG") ;; + 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() { @@ -33,21 +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 (%s,'%s',%s);\n" 'rmpackage', "$pkgid", "$message" + printf "insert into zpmlog (action, target, info) values ('rmpackage','%s',%s);\n" "$pkgid" "$message" done printf "commit;\n" } | zpm shell $pkgfile