X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-addtopackage;h=a3b045b04c8f9330751a89a778c301dfe451bff5;hb=09dde8c2b752ea64d012778ad795b7e70cd9fada;hp=3833c00502a752bd76f013434b0f06609d6c4f61;hpb=ecdd57da7df775c039aee834e1f74172004f352b;p=zpackage diff --git a/zpm-addtopackage b/zpm-addtopackage index 3833c00..a3b045b 100755 --- a/zpm-addtopackage +++ b/zpm-addtopackage @@ -1,9 +1,7 @@ #!/bin/sh -package=${1:-$ZPMPACKAGE} -shift -pkgver=${ZPMPACKAGEVER:-1.0} -pkgrel=${ZPMPACKAGEREL:-1} +pkgver=${ZPMPKGVER:-1.0} +pkgrel=${ZPMPKGREL:-1} # option for "multipackage" just to let the system know that's what you meant # option to take filenames from stdin @@ -20,31 +18,40 @@ while getopts :f:v:r:d:a:u:l:p:b:P: opt; do p) packager="$OPTARG" ;; b) builddate="$OPTARG" ;; P) prefix="$OPTARG" ;; + t) tags="$OPTARG" ;; + c) tags="$tags +configuration" ;; esac done +shift $((OPTIND - 1)) + +die() { + echo $* 1&>2 + exit 1 +} + +package="$1" +shift +if [ -z "$package" ]; then + die "must specify package" +fi set -e if [ -z "$pkgfile" ]; then pkgfile="$package-$pkgver-$pkgrel.zpm" fi -if [ ! -f $pkgfile ]; then - ./zpm-newpackage $package || exit 1 -else - appid=$(sqlite3 $pkgfile 'pragma application_id;' | ( echo obase = 16; cat - ) | bc) - if [ "$appid" != "5A504442" ]; then - echo $pkgfile does not appear to be a zpm package file - exit 1 - fi -fi +# make sure package exists +zpm newpackage -I -f $pkgfile -v $pkgver -r $pkgrel $package || exit 1 + +zpm test -v $pkgfile for path in $*; do - mtime=$(stat -c '%Y' $path) - uid=$(stat -c '%u' $path) - gid=$(stat -c '%g' $path) - username=$(stat -c '%U' $path) - groupname=$(stat -c '%G' $path) - mode=$(stat -c '%a' $path) + mtime=$(zpm stat -f '%y' $path) + uid=$(zpm stat -f '%u' $path) + gid=$(zpm stat -f '%g' $path) + username=$(zpm stat -f '%U' $path) + groupname=$(zpm stat -f '%G' $path) + mode=$(zpm stat -f '%a' $path) # strip off leading slashes rpath=$(echo "$path" | sed -e 's|^/*||') @@ -62,35 +69,36 @@ for path in $*; do rpath="$prefix/$rpath" fi - if [ -f "$path" ]; then - - hash=$(./zpm-addfile $pkgfile $path) - -#if [ -z "$hash" ]; then continue; fi + filetype=$(zpm stat -f '%t' "$path") + hash='NULL' + target='NULL' + case "$filetype" in + regular) + filetype=r + hash=$(zpm addfile $pkgfile "$path") + if [ $? -ne 0 ]; then + die "zpm addfile failed ($?): $pkgfile $path" + fi + hash="'$hash'" + ;; + directory) + filetype=d + ;; + symlink) + filetype=l + target=$(readlink $path) + target="'$target'" + ;; + esac -# TODO mtime, mode -sqlite3 $pkgfile < $target"} printf "%s\n" $path done