X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-add;h=5d84d543e294323aa73305bcbaf9b958648e31ca;hb=f12e588273d9a3ffc97c20a7075845dff68905e4;hp=51c08054038f67091447596deec893e55241f375;hpb=ddeb616cccad9c19467be36be9415cbb82a836ce;p=zpackage diff --git a/zpm-add b/zpm-add index 51c0805..5d84d54 100755 --- a/zpm-add +++ b/zpm-add @@ -29,12 +29,13 @@ cleanpath() { printf "%s" "$clean" } +verbose=0 tags= isconfig=0 # option for "multipackage" just to let the system know that's what you meant # option to take filenames from stdin # parse package, version, release from file if not given -while getopts :f:v:r:l:P:S:cu:g: opt; do +while getopts :f:vr:l:P:S:cu:g: opt; do case $opt in f) pkgfile="$OPTARG" ;; P) prefix="$OPTARG" ;; @@ -43,7 +44,8 @@ while getopts :f:v:r:l:P:S:cu:g: opt; do c) isconfig=1 ;; u) username="$OPTARG" ;; g) groupname="$OPTARG" ;; - *) echo 'unknown option' $opt; exit 1 ;; + v) verbose=1 ;; + *) echo 'unknown option' $OPTARG; exit 1 ;; esac done shift $((OPTIND - 1)) @@ -52,17 +54,34 @@ if [ $isconfig -eq 1 ]; then tags="$tags configuration" fi +if [ $verbose -gt 1 ]; then + set -x +fi + pkgid="$1" shift -set -x eval $(zpm parse -E $pkgid) -if [ -z "$pkgfile" ]; +if [ -z "$pkgfile" ]; then pkgfile=$ZPM_PACKAGE_FILE fi +if [ -z "$release" ]; then + if [ -z "$pkgfile" ]; then + die "cannot determine package file" + else + pkgstr=$(zpm findpkg $pkgfile $pkgid) + if [ -z "$pkgstr" ]; then + die "unable to find package id for $pkgid in $pkgfile" + fi + pkgid=$pkgstr + # need to reparse the new package id + eval $(zpm parse -E $pkgid) + fi +fi + # look for a .zpm file here -if [ -z "$pkgfile" ] && [ -n "$release" ] && [ -f "$pkgid.zpm" ]; +if [ -z "$pkgfile" ] && [ -f "$pkgid.zpm" ]; then pkgfile="$pkgid.zpm" fi @@ -70,24 +89,23 @@ if [ -z "$pkgfile" ]; then die "cannot determine package file" fi -set -e - # check for package file if [ ! -f "$pkgfile" ]; then echo $pkgfile does not exist exit 1 fi +set -e zpm test -v $pkgfile +set +e -if [ -z "$release" ]; then - pkgstr=$(zpm findpkg -f $pkgfile $pkgid) +if [ $verbose -gt 0 ]; then + echo adding to $pkgfile $pkgid fi -if [ -z "$pkgstr" ]; then - die "unable to find package id for $pkgid" -fi -pkgid=$pkgstr +package=$(zpm quote "$name") +pkgver=$(zpm quote "$version") +pkgrel=$(zpm quote "$release") #strip=$(cleanpath "$strip") for path in $*; do @@ -147,6 +165,7 @@ for path in $*; do esac # TODO check that we have such a package,version,release + #cat <