X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-add;h=6c753cf900ca8abadc2803a512d7e2c864500d28;hb=49a5985fd5ea8b77b7196c06b9d407805abe03d8;hp=5d84d543e294323aa73305bcbaf9b958648e31ca;hpb=c0c274bfcf9710c279c8438e55f33ebeed3a3f9b;p=zpackage diff --git a/zpm-add b/zpm-add index 5d84d54..6c753cf 100755 --- a/zpm-add +++ b/zpm-add @@ -32,11 +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 -while getopts :f:vr:l:P:S:cu:g: opt; do +# TODO -l follow symlinks, -L follow symlinks, adding all, links and targets +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"); ;; @@ -45,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 @@ -70,7 +75,7 @@ if [ -z "$release" ]; then if [ -z "$pkgfile" ]; then die "cannot determine package file" else - pkgstr=$(zpm findpkg $pkgfile $pkgid) + pkgstr=$(zpm findpkg -f $pkgfile $pkgid) if [ -z "$pkgstr" ]; then die "unable to find package id for $pkgid in $pkgfile" fi @@ -142,15 +147,19 @@ for path in $*; do rpath="$prefix/$rpath" fi - filetype=$(zpm stat -f '%t' "$path") + filetype=$(zpm stat -l -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" + 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'" ;; @@ -175,5 +184,15 @@ commit; EOS #printf "%s %s%s\n" $path $rpath ${target:+" -> $target"} -printf "%s\n" $path +if [ $verbose -gt 0 ]; then + printf "%s\n" $path +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