X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-add;h=68c986dbfc05a365a3dadce4c2804296efd683fe;hb=fc0e2fbaf7051e42be1a6449a5a004fb3e665d45;hp=4eb11afb4d6aa8e496bcc6e35d465f525b6345bc;hpb=5c7cd8dce1e3f60f4fbaeace7343468c9f7984f3;p=zpackage diff --git a/zpm-add b/zpm-add index 4eb11af..68c986d 100755 --- a/zpm-add +++ b/zpm-add @@ -34,6 +34,7 @@ tags= isconfig=0 addcontent=1 complete=0 +mode= # 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 @@ -48,6 +49,7 @@ while getopts :f:vr:l:P:S:cu:g:NC opt; do c) isconfig=1 ;; u) username="$OPTARG" ;; g) groupname="$OPTARG" ;; + m) mode="$OPTARG" ;; v) verbose=$((verbose + 1)) ;; C) complete=1 ;; *) echo 'unknown option' $OPTARG; exit 1 ;; @@ -118,7 +120,10 @@ for path in $*; do mtime=$(zpm stat -f '%y' $path) uid=$(zpm stat -f '%u' $path) gid=$(zpm stat -f '%g' $path) - mode=$(zpm stat -f '%a' $path) + + if [ -z "$mode" ]; then + mode=$(zpm stat -f '%a' $path) + fi # only stat the file for the user and group name if not set on the # command line @@ -137,7 +142,6 @@ for path in $*; do fi if [ ! -z "$strip" ]; then - echo "stripping $strip" rpath=${rpath#$strip} rpath=${rpath#/} fi @@ -151,6 +155,9 @@ for path in $*; do rpath="$prefix/$rpath" fi + # ensure all paths are absolute + rpath=/${rpath#/} + filetype=$(zpm stat -l -f '%t' "$path") hash='NULL' target='NULL' @@ -181,8 +188,8 @@ for path in $*; do #cat <