#!/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