]> pd.if.org Git - zpackage/blob - zpm-pkg
rewrite zpm-pkg for package metadata
[zpackage] / zpm-pkg
1 #!/bin/sh
2
3 # edit package metadata
4
5 package=${1:-$ZPMPACKAGE}
6 pkgver=${ZPMPKGVER:-1.0}
7 pkgrel=${ZPMPKGREL:-1}
8
9 #zpm pkg -s packager=foo zpm
10
11 # zpm pkg -f <pkgfile> zpm packager=xyz
12 # zpm pkg zpm packager zyz
13 # zpm pkg zpm packager
14
15
16 pkgfile=${ZPMDB:-/var/lib/zpm/db.zpm}
17
18 while getopts f: opt; do
19         case $opt in
20                 f) pkgfile="$OPTARG" ;;
21         esac
22 done
23 shift $((OPTIND - 1))
24
25 set -e
26
27 if [ ! -f $pkgfile ]; then
28         echo cannot find $pkgfile
29         exit 1
30 fi
31
32 pkg=$1
33 shift
34 #printf "pkg: %s\n" $pkg
35 pkgid=$(zpm findpkg $pkgfile $pkg)
36
37 #printf "pkgid: %s\n" $pkgid
38
39 case $1 in
40         status) item=status ;;
41         *) printf 'no such field %s\n' $1; exit 1 ;;
42 esac
43
44 item=$1
45
46 if [ -n "$2" ]; then
47         setting=$2
48 zpm shell $pkgfile <<EOS
49 update packages set $item = '$setting'
50 where
51 printf('%s-%s-%s', package,version,release) = '$pkgid'
52 ;
53 EOS
54 else
55         setting=$(zpm shell $pkgfile <<EOS
56 select $item from packages
57 where
58 printf('%s-%s-%s', package,version,release) = '$pkgid'
59 ;
60 EOS
61 )
62         if [ -n "$setting" ]; then
63                 printf '%s\n' "$setting"
64         fi
65 fi
66