#!/bin/sh pkgfile=${ZPM_PACKAGE_FILE:-${ZPMDB:-/var/lib/zpm/local.db}} verbose=0 # newpackage -f pkgfile $pkgid while getopts :f:vm: opt; do case $opt in f) pkgfile="$OPTARG" ;; v) verbose=1 ;; m) message="$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 } 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" printf "insert into zpmlog (action, target, info) values ('rmpackage','%s',%s);\n" "$pkgid" "$message" done printf "commit;\n" } | zpm shell $pkgfile