X-Git-Url: https://pd.if.org/git/?p=zpackage;a=blobdiff_plain;f=zpm-pkg;h=56bd581e96f19fe292d4a4754609f648d7897da1;hp=663866ed2e0a074da7ce537097ed59c73c435426;hb=69491d14441cfc893e18e1c60c13c995b93002c9;hpb=391769ab75602c14695328fe2d9b4495a0fd0d11 diff --git a/zpm-pkg b/zpm-pkg index 663866e..56bd581 100755 --- a/zpm-pkg +++ b/zpm-pkg @@ -2,18 +2,26 @@ # edit package metadata -package=${1:-$ZPMPACKAGE} -pkgver=${ZPMPKGVER:-1.0} -pkgrel=${ZPMPKGREL:-1} - #zpm pkg -s packager=foo zpm # zpm pkg -f zpm packager=xyz -# zpm pkg zpm packager zyz # zpm pkg zpm packager +warn() { + printf '%s:' "$0" 1>&2 + printf ' %s' $* 1>&2 + printf '\n' 1>&2 + rv=1 +} + +die() { + printf '%s:' "$0" 1>&2 + printf ' %s' $* 1>&2 + printf '\n' 1>&2 + exit 1 +} -pkgfile=${ZPMDB:-/var/lib/zpm/db.zpm} +pkgfile=${ZPMDB:-/var/lib/zpm/local.db} while getopts f: opt; do case $opt in @@ -29,38 +37,78 @@ if [ ! -f $pkgfile ]; then exit 1 fi -pkg=$1 +item=$1 shift #printf "pkg: %s\n" $pkg -pkgid=$(zpm findpkg $pkgfile $pkg) +pkgid=$(zpm findpkg -f $pkgfile "$item") -#printf "pkgid: %s\n" $pkgid +if [ -z "$pkgid" ]; then + die "can't find pkgid for $item in $pkgfile" +fi -case $1 in - status) item=status ;; - *) printf 'no such field %s\n' $1; exit 1 ;; -esac +( +rv=0 -item=$1 +{ +printf "begin;\n" +while [ $# -gt 0 ]; do + item=$1 + shift + show=0 + case "$item" in + :*) + pkgid=$(zpm findpkg -f $pkgfile "${item#:}") + continue + ;; + *=*) + field=${item%%=*} + value=${item#*=} + ;; + *=) + field=${item%%=*} + value= + ;; + *) + field=$item + show=1 + ;; + esac -if [ -n "$2" ]; then - setting=$2 -zpm shell $pkgfile <