From: Nathan Wagner Date: Sun, 2 Apr 2017 22:40:49 +0000 (-0500) Subject: add -f pkgfile option to addtopackage X-Git-Tag: v0.1.6~125 X-Git-Url: https://pd.if.org/git/?p=zpackage;a=commitdiff_plain;h=e5739c4df416952fbe5064436c44c172eb770aa6 add -f pkgfile option to addtopackage --- diff --git a/t/addtopackage.t b/t/addtopackage.t index d3fd86f..3252bec 100755 --- a/t/addtopackage.t +++ b/t/addtopackage.t @@ -7,21 +7,21 @@ PF=test.db -plan 7 +plan 15 td=test.addtopackage rm -rf $td mkdir $td echo foo > $td/foo +okexit 'making foo' -rm zpmtest-1.0-1.zpm +rm -f zpmtest-1.0-1.zpm require zpm addtopackage zpmtest $td/foo h=$(zpm hash $td/foo) require zpm extract zpmtest-1.0-1.zpm $h $td/foo2 -ls -l $td h2=$(zpm hash $td/foo2) -okstreq "$h" "$h2" +okstreq "$h" "$h2" "foo and foo2 hash match" pkglist=$(zpm showpkg zpmtest-1.0-1.zpm) set $pkglist @@ -31,7 +31,24 @@ okstreq "$3" "1" package release okstreq "$4" "$td/foo" file foo in package diag "$pkglist" +rm zpmtest-1.0-1.zpm + +require zpm addtopackage -f $PF zpmtest $td/foo +rm -f $td/foo2 +require zpm extract $PF $h $td/foo2 +h2=$(zpm hash $td/foo2) +okstreq "$h" "$h2" + +pkglist=$(zpm showpkg $PF) +set $pkglist +okstreq "$1" "zpmtest" package name +okstreq "$2" "1.0" package version +okstreq "$3" "1" package release +okstreq "$4" "$td/foo" file foo in package +diag "$pkglist" finish rm -rf $td +rm -f $PF +rm -f zpmtest-1.0-1.zpm diff --git a/zpm-addtopackage b/zpm-addtopackage index 1964b77..a3b045b 100755 --- a/zpm-addtopackage +++ b/zpm-addtopackage @@ -24,19 +24,26 @@ while getopts :f:v:r:d:a:u:l:p:b:P: opt; do 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 - zpm test -v $pkgfile -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=$(zpm stat -f '%y' $path) @@ -67,10 +74,12 @@ for path in $*; do target='NULL' case "$filetype" in regular) - filetype=d + filetype=r hash=$(zpm addfile $pkgfile "$path") + if [ $? -ne 0 ]; then + die "zpm addfile failed ($?): $pkgfile $path" + fi hash="'$hash'" - filetype=r ;; directory) filetype=d diff --git a/zpm-newpackage b/zpm-newpackage index 7ab8aa8..8cce97d 100755 --- a/zpm-newpackage +++ b/zpm-newpackage @@ -19,9 +19,19 @@ while getopts :f:v:r:d:a:u:l:p:b:I opt; do I) idempotent=1 esac done -shift $(( $OPTIND - 1)) +shift $(( OPTIND - 1)) + +die() { + echo $* 1&>2 + exit 1 +} package=$1 +shift + +if [ -z "$package" ]; then + die "must specify package" +fi if [ -z "$pkgfile" ]; then pkgfile="$package-$pkgver-$pkgrel.zpm"