X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-rmpackage;fp=zpm-rmpackage;h=1cb39566f37a832c322822068046373e04114f2c;hb=214fd7d30098cb9dad0fb2a7b522b262512d3892;hp=0000000000000000000000000000000000000000;hpb=c8cf77a41735c303259775742e1980848a71f928;p=zpackage diff --git a/zpm-rmpackage b/zpm-rmpackage new file mode 100755 index 0000000..1cb3956 --- /dev/null +++ b/zpm-rmpackage @@ -0,0 +1,47 @@ +#!/bin/sh + +pkgfile=${ZPM_PACKAGE_FILE:-${ZPMDB:-/var/lib/zpm/local.db}} + +verbose=0 + +# newpackage -f pkgfile $pkgid +while getopts :f:v opt; do + case $opt in + f) pkgfile="$OPTARG" ;; + v) verbose=1 ;; + esac +done +shift $(( OPTIND - 1)) + +die() { + echo $* 1>&2 + exit 1 +} + +warn() { + echo $* 1>&2 +} + +if [ ! -f "$pkgfile" ]; then + die $pkgfile does not exist +fi + +{ + printf ".bail on\n" + printf "begin;\n" + for pkgstr in "$@"; do + pkgid=$(zpm findpkg -f $pkgfile "$pkgstr") + 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" + done + printf "commit;\n" +} | zpm shell $pkgfile