X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-pkgfile;fp=zpm-pkgfile;h=0000000000000000000000000000000000000000;hb=0419c62f964b259df1c1816f5870ef62eb97ed7c;hp=1950d8b5e6e08d448dd355c8b9571db6bc60b677;hpb=0c2216d1e0dc8565a6bf61c9572e47bb1ae1c1fb;p=zpackage diff --git a/zpm-pkgfile b/zpm-pkgfile deleted file mode 100755 index 1950d8b..0000000 --- a/zpm-pkgfile +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/sh - -# edit package file metadata - -#zpm pkg -s packager=foo zpm - -# zpm pkg -f zpm file/path configuration=1 -# 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/local.db} - -while getopts f: opt; do - case $opt in - f) pkgfile="$OPTARG" ;; - esac -done -shift $((OPTIND - 1)) - -if [ ! -f $pkgfile ]; then - echo cannot find $pkgfile - exit 1 -fi - -( -rv=0 - -{ -printf "begin;\n" -while [ $# -gt 0 ]; do - item=$1 - shift - if [ -z "$pkgid" ]; then - item=":${item#:}" - elif [ -z "$path" ]; then - item="/${item#/}" - fi - - show=0 - case "$item" in - :*) - pkgid=$(zpm findpkg -f $pkgfile "${item#:}") - if [ -z "$pkgid" ]; then - warn "can't find pkgid ${item#:} in $pkgfile" - break; - fi - continue - ;; - /*) - path="$item" - continue - ;; - *=*) - field=${item%%=*} - value=${item#*=} - ;; - *=) - field=${item%%=*} - value= - ;; - *) - field=$item - show=1 - ;; - esac - - if [ -z "$path" ]; then - warn "no package file path specified" - break; - fi - - vfield=$(zpm quote "$field") - - hasfield=$(zpm shell $pkgfile "select name from pragma_table_info('packagefiles_pkgid') where name = '$vfield';") - if [ -z "$hasfield" ]; then - warn "$field is not a valid packagefile field" - break - fi - - field=$(zpm quote -i "$field") - vpath=$(zpm quote "$path") - vpkg=$(zpm quote "$pkgid") - - haspath=$(zpm shell $pkgfile "select 1 from packagefiles_pkgid where pkgid = '$vpkg' and path = '$vpath';") - if [ "$haspath" != 1 ]; then - warn "$path not in $pkgid" - break - fi - - if [ $show -eq 1 ]; then - printf "select %s from packagefiles_pkgid where pkgid = '%s' and path = '%s';\n" "$field" "$pkgid" "$vpath" - continue - fi - - if [ -z "$value" ]; then - value=NULL - else - value=$(zpm quote -q "$value") - fi - - printf "update packagefiles_pkgid set %s = %s where pkgid = '$pkgid' and path = '%s';\n" $field $value "$vpath" -done - -if [ $rv -eq 0 ]; then - printf "commit;\n" -else - printf "rollback;\n" -fi - -#} | cat -} | zpm shell $pkgfile -exit $rv -)