X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-add;h=6c753cf900ca8abadc2803a512d7e2c864500d28;hb=49a5985fd5ea8b77b7196c06b9d407805abe03d8;hp=1d68800a9c2faf5d68befb55620a393f47340142;hpb=51a6d79f8a532376a9f27dbb5133bf13a5474703;p=zpackage diff --git a/zpm-add b/zpm-add index 1d68800..6c753cf 100755 --- a/zpm-add +++ b/zpm-add @@ -32,12 +32,15 @@ cleanpath() { verbose=0 tags= isconfig=0 +addcontent=1 +complete=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 # TODO -l follow symlinks, -L follow symlinks, adding all, links and targets -while getopts :f:vr:l:P:S:cu:g: opt; do +while getopts :f:vr:l:P:S:cu:g:NC opt; do case $opt in + N) addcontent=0 ;; f) pkgfile="$OPTARG" ;; P) prefix="$OPTARG" ;; S) strip=$(cleanpath "$OPTARG"); ;; @@ -46,6 +49,7 @@ while getopts :f:vr:l:P:S:cu:g: opt; do u) username="$OPTARG" ;; g) groupname="$OPTARG" ;; v) verbose=1 ;; + C) complete=1 ;; *) echo 'unknown option' $OPTARG; exit 1 ;; esac done @@ -149,9 +153,13 @@ for path in $*; do case "$filetype" in regular) filetype=r - hash=$(zpm addfile $pkgfile "$path") - if [ $? -ne 0 ]; then - die "zpm addfile failed ($?): $pkgfile $path" + if [ $addcontent -eq 1 ]; then + hash=$(zpm addfile $pkgfile "$path") + if [ $? -ne 0 ]; then + die "zpm addfile failed ($?): $pkgfile $path" + fi + else + hash=$(zpm hash "$path") fi hash="'$hash'" ;; @@ -181,3 +189,10 @@ if [ $verbose -gt 0 ]; then fi done + +if [ $complete -eq 1 ]; then + zpm pkg -f $pkgfile $pkgid build_time=$(date +'%s') + zpm packagehash -f $pkgfile -s -q $pkgid +else + zpm pkg -f $pkgfile $pkgid hash= +fi