]> pd.if.org Git - zpackage/blob - zpm-newpackage
add create option to zpm-newpackage
[zpackage] / zpm-newpackage
1 #!/bin/sh
2
3 builddate=$(date '+%s')
4
5 # the repo implied by the arguments
6
7 create=0
8
9 while getopts :Cf:v:r:d:a:u:l:p:b:In: opt; do
10         case $opt in
11                 f) pkgfile="$OPTARG" ;;
12                 d) description="$OPTARG" ;;
13                 a) arch="$OPTARG" ;;
14                 u) url="$OPTARG" ;;
15                 l) licenses="$OPTARG" ;;
16                 C) create=1 ;;
17                 p) packager="$OPTARG" ;;
18                 b) builddate="$OPTARG" ;;
19                 I) idempotent=1
20         esac
21 done
22 shift $(( OPTIND - 1))
23
24 die() {
25         echo $* 1>&2
26         exit 1
27 }
28
29 pkgid=$1
30 shift
31
32 if [ -z "$pkgid" ]; then
33         die "must specify pkgid"
34 fi
35
36 eval "$(zpm parse -E $pkgid)"
37
38 if [ -z "$release" ]; then
39         die 'must specify full package id'
40 fi
41
42 if [ -z "$pkgfile" ]; then
43         pkgfile=$ZPM_PACKAGE_FILE
44 fi
45
46 if [ -z "$pkgfile" ]; then
47         pkgfile="$pkgid.zpm"
48 fi
49
50 set -e
51
52 if [ ! -e $pkgfile ]; then
53         if [ $create -eq 1 ]; then
54                 zpm init $pkgfile
55         else
56                 die "$pkgfile does not exist"
57         fi
58 fi
59
60 if [ "$idempotent" = 1 ]; then
61         idempotent='or ignore'
62 fi
63
64 package=$(zpm quote "$name")
65 pkgver=$(zpm quote "$version")
66 pkgrel=$(zpm quote "$release")
67
68 zpm shell $pkgfile <<EOS
69 insert $idempotent into packages ("package", "version", "release", "build_time")
70 values ('$package', '$pkgver', $pkgrel, $builddate)
71 ;
72 EOS