openpkg/shtool

changeset 428
f880f219c566
parent 13
cb59d6afeb61
     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="$*"

mercurial