1.1 --- a/openpkg/shtool Tue Jul 31 12:12:54 2012 +0200 1.2 +++ b/openpkg/shtool Tue Jul 31 12:23:42 2012 +0200 1.3 @@ -1,12 +1,12 @@ 1.4 #!/bin/sh 1.5 ## 1.6 ## GNU shtool -- The GNU Portable Shell Tool 1.7 -## Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com> 1.8 +## Copyright (c) 1994-2008 Ralf S. Engelschall <rse@engelschall.com> 1.9 ## 1.10 ## See http://www.gnu.org/software/shtool/ for more information. 1.11 ## See ftp://ftp.gnu.org/gnu/shtool/ for latest version. 1.12 ## 1.13 -## Version: 2.0.7 (19-May-2007) 1.14 +## Version: 2.0.8 (18-Jul-2008) 1.15 ## Contents: all available modules 1.16 ## 1.17 1.18 @@ -90,8 +90,8 @@ 1.19 exit 1 1.20 fi 1.21 if [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then 1.22 - echo "This is GNU shtool, version 2.0.7 (19-May-2007)" 1.23 - echo 'Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com>' 1.24 + echo "This is GNU shtool, version 2.0.8 (18-Jul-2008)" 1.25 + echo 'Copyright (c) 1994-2008 Ralf S. Engelschall <rse@engelschall.com>' 1.26 echo 'Report bugs to <bug-shtool@gnu.org>' 1.27 echo '' 1.28 echo 'Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]' 1.29 @@ -157,7 +157,7 @@ 1.30 exit 0 1.31 fi 1.32 if [ ".$1" = ".-v" ] || [ ".$1" = ".--version" ]; then 1.33 - echo "GNU shtool 2.0.7 (19-May-2007)" 1.34 + echo "GNU shtool 2.0.8 (18-Jul-2008)" 1.35 exit 0 1.36 fi 1.37 if [ ".$1" = ".-r" ] || [ ".$1" = ".--recreate" ]; then 1.38 @@ -647,7 +647,7 @@ 1.39 echo ) 1.40 ## 1.41 ## echo -- Print string with optional construct expansion 1.42 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.43 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.44 ## 1.45 1.46 text="$*" 1.47 @@ -958,7 +958,7 @@ 1.48 ## 1.49 ## mdate -- Pretty-print modification time of a file or dir 1.50 ## Copyright (c) 1995-1997 Free Software Foundation, Inc. 1.51 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.52 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.53 ## 1.54 1.55 fod="$1" 1.56 @@ -1086,7 +1086,7 @@ 1.57 table ) 1.58 ## 1.59 ## table -- Pretty-print a field-separated list as a table 1.60 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.61 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.62 ## 1.63 1.64 if [ $opt_c -gt 4 ]; then 1.65 @@ -1151,7 +1151,7 @@ 1.66 prop ) 1.67 ## 1.68 ## prop -- Display progress with a running propeller 1.69 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.70 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.71 ## 1.72 1.73 perl='' 1.74 @@ -1197,7 +1197,7 @@ 1.75 move ) 1.76 ## 1.77 ## move -- Move files with simultaneous substitution 1.78 - ## Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com> 1.79 + ## Copyright (c) 1999-2008 Ralf S. Engelschall <rse@engelschall.com> 1.80 ## 1.81 1.82 src="$1" 1.83 @@ -1289,7 +1289,7 @@ 1.84 install ) 1.85 ## 1.86 ## install -- Install a program, script or datafile 1.87 - ## Copyright (c) 1997-2007 Ralf S. Engelschall <rse@engelschall.com> 1.88 + ## Copyright (c) 1997-2008 Ralf S. Engelschall <rse@engelschall.com> 1.89 ## 1.90 1.91 # special case: "shtool install -d <dir> [...]" internally 1.92 @@ -1452,7 +1452,7 @@ 1.93 mkdir ) 1.94 ## 1.95 ## mkdir -- Make one or more directories 1.96 - ## Copyright (c) 1996-2007 Ralf S. Engelschall <rse@engelschall.com> 1.97 + ## Copyright (c) 1996-2008 Ralf S. Engelschall <rse@engelschall.com> 1.98 ## 1.99 1.100 errstatus=0 1.101 @@ -1540,11 +1540,11 @@ 1.102 mkln ) 1.103 ## 1.104 ## mkln -- Make link with calculation of relative paths 1.105 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.106 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.107 ## 1.108 1.109 # determine source(s) and destination 1.110 - args=$? 1.111 + args=$# 1.112 srcs="" 1.113 while [ $# -gt 1 ]; do 1.114 srcs="$srcs $1" 1.115 @@ -1628,14 +1628,14 @@ 1.116 dstdir="" 1.117 else 1.118 while [ ".$srcdir" != . ] && [ ".$dstdir" != . ]; do 1.119 - presrc=`echo $srcdir | sed -e 's;^\([^/]*\)/.*;\1;'` 1.120 - predst=`echo $dstdir | sed -e 's;^\([^/]*\)/.*;\1;'` 1.121 + presrc=`echo $srcdir | sed -e 's;^\([^/][^/]*\)/.*;\1;'` 1.122 + predst=`echo $dstdir | sed -e 's;^\([^/][^/]*\)/.*;\1;'` 1.123 if [ ".$presrc" != ".$predst" ]; then 1.124 break 1.125 fi 1.126 prefix="$prefix$presrc/" 1.127 - srcdir=`echo $srcdir | sed -e 's;^[^/]*/*;;'` 1.128 - dstdir=`echo $dstdir | sed -e 's;^[^/]*/*;;'` 1.129 + srcdir=`echo $srcdir | sed -e 's;^[^/][^/]*/*;;'` 1.130 + dstdir=`echo $dstdir | sed -e 's;^[^/][^/]*/*;;'` 1.131 done 1.132 fi 1.133 1.134 @@ -1648,13 +1648,13 @@ 1.135 allow_relative_srcpre=no 1.136 if [ ".$prefix" != . ] && [ ".$prefix" != ./ ]; then 1.137 allow_relative_srcpre=yes 1.138 - fi 1.139 + fi 1.140 if [ $oneisabs = 0 ]; then 1.141 allow_relative_srcpre=yes 1.142 - fi 1.143 + fi 1.144 if [ ".$opt_s" != .yes ]; then 1.145 allow_relative_srcpre=no 1.146 - fi 1.147 + fi 1.148 if [ ".$allow_relative_srcpre" = .yes ]; then 1.149 pl="$dstdir/" 1.150 OIFS="$IFS"; IFS='/' 1.151 @@ -1679,6 +1679,11 @@ 1.152 fi 1.153 fi 1.154 1.155 + # special case (usually on "mkln -s /foo /foo/bar", etc) 1.156 + if [ ".$srcpre$srcdir$srcbase" = . ]; then 1.157 + srcdir="." 1.158 + fi 1.159 + 1.160 # now finalize source and destination directory paths 1.161 srcdir=`echo $srcdir | sed -e 's;\([^/]\)$;\1/;'` 1.162 dstdir=`echo $dstdir | sed -e 's;\([^/]\)$;\1/;'` 1.163 @@ -1696,7 +1701,7 @@ 1.164 mkshadow ) 1.165 ## 1.166 ## mkshadow -- Make a shadow tree through symbolic links 1.167 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.168 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.169 ## 1.170 1.171 # source and destination directory 1.172 @@ -1814,7 +1819,7 @@ 1.173 fixperm ) 1.174 ## 1.175 ## fixperm -- Fix file permissions inside a source tree 1.176 - ## Copyright (c) 1996-2007 Ralf S. Engelschall <rse@engelschall.com> 1.177 + ## Copyright (c) 1996-2008 Ralf S. Engelschall <rse@engelschall.com> 1.178 ## 1.179 1.180 paths="$*" 1.181 @@ -1871,7 +1876,7 @@ 1.182 rotate ) 1.183 ## 1.184 ## rotate -- Logfile rotation 1.185 - ## Copyright (c) 2001-2007 Ralf S. Engelschall <rse@engelschall.com> 1.186 + ## Copyright (c) 2001-2008 Ralf S. Engelschall <rse@engelschall.com> 1.187 ## 1.188 1.189 # make sure we have at least one file to rotate 1.190 @@ -2032,6 +2037,11 @@ 1.191 1.192 # execute prolog 1.193 if [ ".$opt_P" != . ]; then 1.194 + # pass current log file name to prolog 1.195 + # prolog cannot be handed an argument as it may be 1.196 + # called as "prolog && something" 1.197 + SHTOOL_ROTATE_LOGFILE="$ldir/$file" 1.198 + export SHTOOL_ROTATE_LOGFILE 1.199 if [ ".$opt_t" = .yes ]; then 1.200 echo "$opt_P" 1.201 fi 1.202 @@ -2221,6 +2231,11 @@ 1.203 1.204 # execute epilog 1.205 if [ ".$opt_E" != . ]; then 1.206 + # pass archive file name to epilog command 1.207 + # epilog cannot be handed an argument as it is often 1.208 + # called as "epilog && something" 1.209 + SHTOOL_ROTATE_LOGFILE="${adir}/${file}" 1.210 + export SHTOOL_ROTATE_LOGFILE 1.211 if [ ".$opt_t" = .yes ]; then 1.212 echo "$opt_E" 1.213 fi 1.214 @@ -2235,7 +2250,7 @@ 1.215 tarball ) 1.216 ## 1.217 ## tarball -- Roll distribution tarballs 1.218 - ## Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com> 1.219 + ## Copyright (c) 1999-2008 Ralf S. Engelschall <rse@engelschall.com> 1.220 ## 1.221 1.222 srcs="$*" 1.223 @@ -2399,7 +2414,7 @@ 1.224 subst ) 1.225 ## 1.226 ## subst -- Apply sed(1) substitution operations 1.227 - ## Copyright (c) 2001-2007 Ralf S. Engelschall <rse@engelschall.com> 1.228 + ## Copyright (c) 2001-2008 Ralf S. Engelschall <rse@engelschall.com> 1.229 ## 1.230 1.231 # remember optional list of file(s) 1.232 @@ -2511,7 +2526,7 @@ 1.233 fi 1.234 fi 1.235 1.236 - # optionally check whether any content change actually occurred 1.237 + # optionally check whether any content change actually occurred 1.238 if [ ".$opt_q" = .no ]; then 1.239 if cmp $file$orig $file >/dev/null 2>&1; then 1.240 if [ ".$opt_w" = .yes ]; then 1.241 @@ -2560,7 +2575,7 @@ 1.242 platform ) 1.243 ## 1.244 ## platform -- Platform Identification Utility 1.245 - ## Copyright (c) 2003-2007 Ralf S. Engelschall <rse@engelschall.com> 1.246 + ## Copyright (c) 2003-2008 Ralf S. Engelschall <rse@engelschall.com> 1.247 ## 1.248 1.249 # option post-processing 1.250 @@ -2708,6 +2723,22 @@ 1.251 SC="4.4BSD" 1.252 ;; 1.253 1.254 + # DragonFly BSD 1.255 + *:DragonFly:* ) 1.256 + # determine architecture 1.257 + AT="${UNAME_MACHINE}" 1.258 + AP="${AT}" 1.259 + case "${AP}" in 1.260 + i[3-6]86 ) AP="iX86" ;; 1.261 + esac 1.262 + AC="${AP}" 1.263 + # determine system 1.264 + r=`echo "${UNAME_RELEASE}" | sed -e 's/\([-_].*\)$/[\1]/'` 1.265 + ST="DragonFly ${r}" 1.266 + SP="${ST}" 1.267 + SC="4.4BSD" 1.268 + ;; 1.269 + 1.270 # GNU/Linux 1.271 *:Linux:* ) 1.272 # determine architecture 1.273 @@ -2749,7 +2780,7 @@ 1.274 n=`echo ${tagfile} | sed -e 's/[_-]release$//' -e 's/[_-]version$//'` 1.275 v=`(grep VERSION /etc/${tagfile}; cat /etc/${tagfile}) | grep '[0-9]' | sed -e 'q' |\ 1.276 sed -e 's/^/#/' \ 1.277 - -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \ 1.278 + -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\)\(\.[0-9][0-9]*\).*$/\1[\2]/' \ 1.279 -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \ 1.280 -e 's/^#[^0-9]*\([0-9][0-9]*\).*$/\1/' \ 1.281 -e 's/^#.*$//'` 1.282 @@ -2925,15 +2956,15 @@ 1.283 # IBM AIX 1.284 *:AIX:* ) 1.285 # determine architecture 1.286 - cpu_arch=rs6000 1.287 + cpu_arch=RS6000 1.288 if [ -x /usr/sbin/lsdev -a -x /usr/sbin/lsattr ]; then 1.289 cpu_id=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 1.290 if [ ".`/usr/sbin/lsattr -El ${cpu_id} | grep -i powerpc`" != . ]; then 1.291 - cpu_arch=powerpc 1.292 + cpu_arch=PPC 1.293 fi 1.294 elif [ -d /QOpenSys ]; then 1.295 # IBM i5/OS (aka OS/400) with PASE (Portable Application Solutions Environment) 1.296 - cpu_arch=powerpc 1.297 + cpu_arch=PPC 1.298 fi 1.299 if [ -x /usr/bin/oslevel ]; then 1.300 os_level=`/usr/bin/oslevel` 1.301 @@ -2999,6 +3030,36 @@ 1.302 SC="4.4BSD/Mach3.0" 1.303 ;; 1.304 1.305 + # Windows/Cygwin 1.306 + *:CYGWIN*:* ) 1.307 + # determine architecture 1.308 + AT="`uname -m`" 1.309 + AP="${AT}" 1.310 + case "${AP}" in 1.311 + i?86 ) AP="iX86" ;; 1.312 + esac 1.313 + AC="${AP}" 1.314 + # determine system 1.315 + unset v1; unset v2; unset v3 1.316 + eval `echo "${UNAME_RELEASE}" |\ 1.317 + sed -e 's/^/#/' \ 1.318 + -e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"; v3="\3"/' \ 1.319 + -e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"/' \ 1.320 + -e 's/^#\([0-9][0-9]*\).*$/v1="\1"/' \ 1.321 + -e 's/^#.*$/v1="0"/'` 1.322 + ST="Cygwin ${v1}${v2+.$v2}${v3+[.$v3]}" 1.323 + SP="$ST" 1.324 + SC="Windows" 1.325 + v=`echo "${UNAME_SYSTEM}" | sed -e 's/^CYGWIN_NT-//' |\ 1.326 + sed -e 's/^/#/' -e 's/^#\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' -e 's/^#.*$//'` 1.327 + case "$v" in 1.328 + 4.0 ) SC="$SC[ NT]" ;; 1.329 + 5.0 ) SC="$SC[ 2000]" ;; 1.330 + 5.1 ) SC="$SC[ XP]" ;; 1.331 + 6.0 ) SC="$SC[ Vista]" ;; 1.332 + esac 1.333 + ;; 1.334 + 1.335 # TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO 1.336 # *:XXX:* ) 1.337 # ... 1.338 @@ -3143,7 +3204,7 @@ 1.339 arx ) 1.340 ## 1.341 ## arx -- Extended archive command 1.342 - ## Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com> 1.343 + ## Copyright (c) 1999-2008 Ralf S. Engelschall <rse@engelschall.com> 1.344 ## 1.345 1.346 ar_prg="$opt_C" 1.347 @@ -3222,7 +3283,7 @@ 1.348 slo ) 1.349 ## 1.350 ## slo -- Separate linker options by library class 1.351 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.352 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.353 ## 1.354 1.355 DIFS="$IFS" 1.356 @@ -3381,7 +3442,7 @@ 1.357 scpp ) 1.358 ## 1.359 ## scpp -- Sharing C Pre-Processor 1.360 - ## Copyright (c) 1999-2007 Ralf S. Engelschall <rse@engelschall.com> 1.361 + ## Copyright (c) 1999-2008 Ralf S. Engelschall <rse@engelschall.com> 1.362 ## 1.363 1.364 srcs="$*" 1.365 @@ -3601,7 +3662,7 @@ 1.366 version ) 1.367 ## 1.368 ## version -- Maintain a version information file 1.369 - ## Copyright (c) 1994-2007 Ralf S. Engelschall <rse@engelschall.com> 1.370 + ## Copyright (c) 1994-2008 Ralf S. Engelschall <rse@engelschall.com> 1.371 ## 1.372 1.373 file="$1" 1.374 @@ -3893,7 +3954,7 @@ 1.375 path ) 1.376 ## 1.377 ## path -- Deal with program paths 1.378 - ## Copyright (c) 1998-2007 Ralf S. Engelschall <rse@engelschall.com> 1.379 + ## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com> 1.380 ## 1.381 1.382 namelist="$*"