+item=$1
+shift
+#printf "pkg: %s\n" $pkg
+pkgid=$(zpm findpkg -f $pkgfile "$item")
+
+if [ -z "$pkgid" ]; then
+ die "can't find pkgid for $item in $pkgfile"
+fi
+
+(
+rv=0
+
+{
+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 [ -z "$pkgid" ]; then
+ warn "can't find pkgid for $item in $pkgfile"
+ break;
+ fi
+
+ vfield=$(zpm quote "$field")
+
+ hasfield=$(zpm shell $pkgfile "select name from pragma_table_info('packages') where name = '$vfield';")
+ if [ -z "$hasfield" ]; then
+ warn "$field is not a valid package field"
+ break
+ fi
+
+ field=$(zpm quote -i "$field")