From: Nathan Wagner Date: Wed, 12 Dec 2018 15:48:49 +0000 (+0000) Subject: quote paths in zpm-add X-Git-Tag: v0.4.3~2 X-Git-Url: https://pd.if.org/git/?p=zpackage;a=commitdiff_plain;h=090abacfef5458a521c154ba735f5b84cea3724d quote paths in zpm-add add -z option to not clear package hash --- diff --git a/zpm-add b/zpm-add index f627c6d..c910a1c 100755 --- a/zpm-add +++ b/zpm-add @@ -7,8 +7,8 @@ # no id impossible die() { - echo $* 1>&2 - exit 1 + echo "$@" 1>&2 + exit 255 } # basic cleanup on a path @@ -34,6 +34,7 @@ tags= isconfig=0 addcontent=1 complete=0 +noclear=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 @@ -43,7 +44,7 @@ complete=0 # -m set mode # -H set hash, will be overridden for regular files unless -N is set # -F set filetype, regular, symlink, directory -while getopts :f:vr:l:P:S:cu:g:NCm:M:T:H:F: opt; do +while getopts :f:vr:l:P:S:cu:g:NCm:M:T:H:F:z opt; do case $opt in N) addcontent=0 ;; f) pkgfile="$OPTARG" ;; @@ -60,7 +61,8 @@ while getopts :f:vr:l:P:S:cu:g:NCm:M:T:H:F: opt; do H) clhash="$OPTARG" ;; v) verbose=$((verbose + 1)) ;; C) complete=1 ;; - *) echo 'unknown option' $OPTARG; exit 1 ;; + z) noclear=1 ;; + *) echo 'unknown option' $OPTARG; exit 255 ;; esac done shift $((OPTIND - 1)) @@ -106,8 +108,7 @@ fi # check for package file if [ ! -f "$pkgfile" ]; then - echo $pkgfile does not exist - exit 1 + die $pkgfile does not exist fi set -e @@ -123,17 +124,17 @@ pkgver=$(zpm quote "$version") pkgrel=$(zpm quote "$release") #strip=$(cleanpath "$strip") -for path in $*; do +for path in "$@"; do #echo adding $path if [ $verbose -gt 1 ]; then - printf "adding %s\n" $path + printf "adding %s\n" "$path" fi # only stat the file for items not set on the command line - mode=${clmode:-$(zpm stat -l -f '%a' $path)} - username=${cluser:-$(zpm stat -l -f '%U' $path)} - groupname=${clgroup:-$(zpm stat -l -f '%G' $path)} - mtime=${clmtime:-$(zpm stat -l -f '%y' $path)} + mode=${clmode:-$(zpm stat -l -f '%a' "$path")} + username=${cluser:-$(zpm stat -l -f '%U' "$path")} + groupname=${clgroup:-$(zpm stat -l -f '%G' "$path")} + mtime=${clmtime:-$(zpm stat -l -f '%y' "$path")} filetype=${cltype:-$(zpm stat -l -f '%t' "$path")} rpath="$path" @@ -213,11 +214,15 @@ values ('$package', '$pkgver', $pkgrel, '$rpath', '$mode',$mtime, '$username','$ commit; EOS +if [ $? -ne 0 ]; then + die zpm-add shell failed +fi + #printf "%s %s%s\n" $path $rpath ${target:+" -> $target"} if [ $verbose -gt 1 ]; then - printf "%s%s %s:%s %s\n" $filetype $mode $username $groupname $path + printf "%s%s %s:%s %s\n" $filetype $mode $username $groupname "$path" elif [ $verbose -gt 0 ]; then - printf "%s\n" $path + printf "%s\n" "$path" fi done @@ -225,6 +230,11 @@ done if [ $complete -eq 1 ]; then zpm pkg -f $pkgfile $pkgid build_time=$(date +'%s') zpm packagehash -f $pkgfile -s -q $pkgid -else +elif [ $noclear -eq 0 ]; then zpm pkg -f $pkgfile $pkgid hash= + rv=$? + if [ $rv -ne 0 ]; then + die clearing packagehash failed + fi fi +exit 0