On Wed, 6 Nov 2002, Marcus Boerger wrote:
>Will we update shtool from 1.5.4 (our current version) to 1.6.2 (actual
>version)?
I don't see any problems with that. But do add that 'path'
option/module/whatever into it when you create it.
--Jani
>I just tried it and it seems to work. But i would like to here other
>meanings before
>commiting.
>
>marcus
>
> ChangeLog
> Changes between 1.6.1 and 1.6.2 (12-Jul-2002 to 02-Nov-2002):
> *) Map "shtool install -d <dir> [...]" internally to "shtool mkdir
>
> -f -p -m 755 <dir> [...]" in order to support the BSD-style
> "install -d" variant.
> [Ralf S. Engelschall, Alan Eldridge <[EMAIL PROTECTED]>]
> *) Add -o|--owner and -g|--group options to "shtool mkdir".
> [Ralf S. Engelschall]
> *) Fixed 'shtool scpp -f ...'. The arguments to option -f
> were not evaluated correctly.
> [Ralf S. Engelschall]
> *) Support bold font on 'cygwin' terminals.
> [Marcus Boerger <[EMAIL PROTECTED]>]
> *) Try the terminal 'init' sequence before 'reset' for bold mode
> restoring in order to make sure the terminal is not cleared.
> Additionally, fallback to a consistent no-bold mode.
> [Mirko Liss <[EMAIL PROTECTED]>]
> Changes between 1.6.0 and 1.6.1 (01-Feb-2002 to 12-Jul-2002):
> *) Removed not-existing --min-size option from the usage
> of "shtool rotate". The name is just --size.
> [Thomas Linden <[EMAIL PROTECTED]>]
> *) Port to POSIX 1003.1-2001 (SUSv3) standard:
> sh.echo, sh.version: "head -1" -> "sed -e 'q'"
> sh.path: "sort -u | tail -1" -> "sort -r -u | sed -e q"
> sh.subst: diff -u1 -> diff -U1
> [Paul Eggert <[EMAIL PROTECTED]>]
> *) Fixed various typos in shtool.pod.
> [Ralf S. Engelschall, Liones <[EMAIL PROTECTED]>]
> Changes between 1.5.4 and 1.6.0 (14-Jun-2001 to 01-Feb-2002):
> *) Upgraded to GNU Autoconf 2.52 environment.
> [Ralf S. Engelschall]
> *) Fixed contained RPM specification (shtool.spec)
> [Ralf S. Engelschall]
> *) Added new command `shtool rotate [-v|--verbose] [-t|--trace]
> [-f|--force] [-n|--num-files <count>] [-s|--min-size <size>]
> [-c|--copy] [-r|--remove] [-a|--archive-dir <dir>] [-z|--compress
> [<tool>:]<level>] [-b|--background] [-d|--delay] [-p|--pad <len>]
> [-o|--owner <owner>] [-g|--group <group>] [-m|--mode <mode>]
> [-M|--migrate <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>]
> [<file> ...]'. This is a sophisticated command for rotating
> logfiles of daemons.
> [Ralf S. Engelschall]
> *) Added GNU long-option support (`--xxxx').
> [Ralf S. Engelschall]
> *) Cleaned up temporary file handling in `shtool path'.
> [Ralf S. Engelschall]
> *) Added NEWS file to source tree to comply to GNU standards.
> [Ralf S. Engelschall]
> *) Add new `shtool subst [-v] [-t] [-n] [-s] [-i] [-b<ext>]
> [-e<cmd>] [-f<cmd-file>] [<file>] [...]' command. This
> is a useful wrapper around sed(1).
> [Ralf S. Engelschall]
>
>
>Diff:
>
>cvs -z3 -q diff shtool (in directory S:\php4-HEAD\build\)
>Index: shtool
>===================================================================
>RCS file: /repository/php4/build/shtool,v
>retrieving revision 1.3
>diff -u -r1.3 shtool
>--- shtool 7 Mar 2002 14:17:56 -0000 1.3
>+++ shtool 6 Nov 2002 13:57:36 -0000
>@@ -1,13 +1,13 @@
> #!/bin/sh
> ##
> ## GNU shtool -- The GNU Portable Shell Tool
>-## Copyright (c) 1994-2001 Ralf S. Engelschall <[EMAIL PROTECTED]>
>+## Copyright (c) 1994-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
> ##
> ## See http://www.gnu.org/software/shtool/ for more information.
> ## See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
> ##
>-## Version: 1.5.4 (14-Jun-2001)
>-## Contents: 3/17 available modules
>+## Version: 1.6.2 (02-Nov-2002)
>+## Contents: 3/19 available modules
> ##
>
> ##
>@@ -50,7 +50,9 @@
> ## mkln Make link with calculation of relative paths
> ## mkshadow Make a shadow tree through symbolic links
> ## fixperm Fix file permissions inside a source tree
>+## rotate Logfile rotation
> ## tarball Roll distribution tarballs
>+## subst Apply sed(1) substitution operations
> ## guessos Simple operating system guesser
> ## arx Extended archive command
> ## slo Separate linker options by library class
>@@ -65,8 +67,8 @@
> exit 1
> fi
> if [ ".$1" = ".-h" -o ".$1" = ".--help" ]; then
>- echo "This is GNU shtool, version 1.5.4 (14-Jun-2001)"
>- echo "Copyright (c) 1994-2001 Ralf S. Engelschall <[EMAIL PROTECTED]>"
>+ echo "This is GNU shtool, version 1.6.2 (02-Nov-2002)"
>+ echo "Copyright (c) 1994-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>"
> echo "Report bugs to <[EMAIL PROTECTED]>"
> echo ''
> echo "Usage: shtool [<options>] [<cmd-name> [<cmd-options>]
>[<cmd-args>]]"
>@@ -78,38 +80,63 @@
> echo ' -r, --recreate recreate this shtool script via shtoolize'
> echo ''
> echo 'Available <cmd-name> [<cmd-options>] [<cmd-args>]:'
>- echo ' echo [-n] [-e] [<str> ...]'
>- echo ' install [-v] [-t] [-c] [-C] [-s] [-m<mode>] [-o<owner>]
>[-g<group>]'
>- echo ' [-e<sed-cmd>] <file> [<file> ...] <path>'
>- echo ' mkdir [-t] [-f] [-p] [-m<mode>] <dir> [<dir> ...]'
>+ echo ' echo [-n|--newline] [-e|--expand] [<str> ...]'
>+ echo ' install [-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy]'
>+ echo ' [-C|--compare-copy] [-s|--strip] [-m|--mode <mode>]'
>+ echo ' [-o|--owner <owner>] [-g|--group <group>] [-e|--exec'
>+ echo ' <sed-cmd>] <file> [<file> ...] <path>'
>+ echo ' mkdir [-t|--trace] [-f|--force] [-p|--parents] [-m|--mode'
>+ echo ' <mode>] [-o|--owner <owner>] [-g|--group <group>] <dir>'
>+ echo ' [<dir> ...]'
> echo ''
> echo 'Not available <cmd-name> (because module was not built-in):'
>- echo ' mdate [-n] [-z] [-s] [-d] [-f<str>] [-o<spec>] <path>'
>- echo ' table [-F<sep>] [-w<width>] [-c<cols>] [-s<strip>]
><str><sep><str>...'
>- echo ' prop [-p<str>]'
>- echo ' move [-v] [-t] [-e] [-p] <src-file> <dst-file>'
>- echo ' mkln [-t] [-f] [-s] <src-path> [<src-path> ...] <dst-path>'
>- echo ' mkshadow [-v] [-t] [-a] <src-dir> <dst-dir>'
>- echo ' fixperm [-v] [-t] <path> [<path> ...]'
>- echo ' tarball [-t] [-v] [-o<tarball>] [-c<prog>] [-d<dir>] [-u<user>]'
>- echo ' [-g<group>] [-e<pattern>] <path> [<path> ...]'
>+ echo ' mdate [-n|--newline] [-z|--zero] [-s|--shorten] [-d|--digits]'
>+ echo ' [-f|--field-sep <str>] [-o|--order <spec>] <path>'
>+ echo ' table [-F|--field-sep <sep>] [-w|--width <width>]
>[-c|--columns'
>+ echo ' <cols>] [-s|--strip <strip>] <str><sep><str>...'
>+ echo ' prop [-p|--prefix <str>]'
>+ echo ' move [-v|--verbose] [-t|--trace] [-e|--expand]
>[-p|--preserve]'
>+ echo ' <src-file> <dst-file>'
>+ echo ' mkln [-t|--trace] [-f|--force] [-s|--symbolic] <src-path>'
>+ echo ' [<src-path> ...] <dst-path>'
>+ echo ' mkshadow [-v|--verbose] [-t|--trace] [-a|--all] <src-dir>
><dst-dir>'
>+ echo ' fixperm [-v|--verbose] [-t|--trace] <path> [<path> ...]'
>+ echo ' rotate [-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files'
>+ echo ' <count>] [-s|--size <size>] [-c|--copy] [-r|--remove]'
>+ echo ' [-a|--archive-dir <dir>] [-z|--compress
>[<tool>:]<level>]'
>+ echo ' [-b|--background] [-d|--delay] [-p|--pad <len>]
>[-o|--owner'
>+ echo ' <owner>] [-g|--group <group>] [-m|--mode <mode>]
>[-M|--migrate'
>+ echo ' <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>] <file>
>[...]'
>+ echo ' tarball [-t|--trace] [-v|--verbose] [-o|--output <tarball>]'
>+ echo ' [-c|--compress <prog>] [-d|--directory <dir>] [-u|--user'
>+ echo ' <user>] [-g|--group <group>] [-e|--exclude <pattern>]'
>+ echo ' <path> [<path> ...]'
>+ echo ' subst [-v|--verbose] [-t|--trace] [-n|--nop] [-s|--stealth]'
>+ echo ' [-i|--interactive] [-b|--backup <ext>] [-e|--exec <cmd>]'
>+ echo ' [-f|--file <cmd-file>] [<file>] [...]'
> echo ' guessos '
>- echo ' arx [-t] [-C<cmd>] <op> <archive> [<file> ...]'
>- echo ' slo [-p<str>] -- -L<dir> -l<lib> [-L<dir> -l<lib> ...]'
>- echo ' scpp [-v] [-p] [-f<filter>] [-o<ofile>] [-t<tfile>]
>[-M<mark>]'
>- echo ' [-D<dname>] [-C<cname>] <file> [<file> ...]'
>- echo ' version [-l<lang>] [-n<name>] [-p<prefix>] [-s<version>] [-e]'
>- echo ' [-i<knob>] [-d<type>] <file>'
>- echo ' path [-s] [-r] [-d] [-b] [-m] [-p<path>] <str> [<str> ...]'
>+ echo ' arx [-t|--trace] [-C|--command <cmd>] <op> <archive> [<file>'
>+ echo ' ...]'
>+ echo ' slo [-p|--prefix <str>] -- -L<dir> -l<lib> [-L<dir> -l<lib>'
>+ echo ' ...]'
>+ echo ' scpp [-v|--verbose] [-p|--preserve] [-f|--filter <filter>]'
>+ echo ' [-o|--output <ofile>] [-t|--template <tfile>] [-M|--mark'
>+ echo ' <mark>] [-D|--define <dname>] [-C|--class <cname>]'
>+ echo ' <file> [<file> ...]'
>+ echo ' version [-l|--language <lang>] [-n|--name <name>] [-p|--prefix'
>+ echo ' <prefix>] [-s|--set <version>] [-e|--edit]
>[-i|--increase'
>+ echo ' <knob>] [-d|--display <type>] <file>'
>+ echo ' path [-s|--suppress] [-r|--reverse] [-d|--dirname]
>[-b|--basename]'
>+ echo ' [-m|--magic] [-p|--path <path>] <str> [<str> ...]'
> echo ''
> exit 0
> fi
> if [ ".$1" = ".-v" -o ".$1" = ."--version" ]; then
>- echo "GNU shtool 1.5.4 (14-Jun-2001)"
>+ echo "GNU shtool 1.6.2 (02-Nov-2002)"
> exit 0
> fi
> if [ ".$1" = ".-r" -o ".$1" = ."--recreate" ]; then
>- shtoolize -ofoo echo install mkdir
>+ shtoolize -oshtool echo install mkdir
> exit 0
> fi
> if [ ".$1" = ".-d" -o ".$1" = ."--debug" ]; then
>@@ -139,19 +166,22 @@
> case $tool in
> echo )
> str_tool="echo"
>- str_usage="[-n] [-e] [<str> ...]"
>+ str_usage="[-n|--newline] [-e|--expand] [<str> ...]"
> arg_spec="0+"
> opt_spec="n.e."
>+ opt_alias="n:newline,e:expand"
> opt_n=no
> opt_e=no
> ;;
> install )
> str_tool="install"
>- str_usage="[-v] [-t] [-c] [-C] [-s] [-m<mode>] [-o<owner>]
>[-g<group>] [-e<sed-cmd>] <file> [<file> ...] <path>"
>- arg_spec="2+"
>- opt_spec="v.t.c.C.s.m:o:g:e+"
>+ str_usage="[-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy]
>[-C|--compare-copy] [-s|--strip] [-m|--mode <mode>] [-o|--owner <owner>]
>[-g|--group <group>] [-e|--exec <sed-cmd>] <file> [<file> ...] <path>"
>+ arg_spec="1+"
>+ opt_spec="v.t.d.c.C.s.m:o:g:e+"
>+
>opt_alias="v:verbose,t:trace,d:mkdir,c:copy,C:compare-copy,s:strip,m:mode,o:owner,g:group,e:exec"
> opt_v=no
> opt_t=no
>+ opt_d=no
> opt_c=no
> opt_C=no
> opt_s=no
>@@ -162,13 +192,16 @@
> ;;
> mkdir )
> str_tool="mkdir"
>- str_usage="[-t] [-f] [-p] [-m<mode>] <dir> [<dir> ...]"
>+ str_usage="[-t|--trace] [-f|--force] [-p|--parents] [-m|--mode
><mode>] [-o|--owner <owner>] [-g|--group <group>] <dir> [<dir> ...]"
> arg_spec="1+"
>- opt_spec="t.f.p.m:"
>+ opt_spec="t.f.p.m:o:g:"
>+ opt_alias="t:trace,f:force,p:parents,m:mode,o:owner,g:group"
> opt_t=no
> opt_f=no
> opt_p=no
> opt_m=""
>+ opt_o=""
>+ opt_g=""
> ;;
> -* )
> echo "$0:Error: unknown option \`$tool'" 2>&1
>@@ -186,6 +219,11 @@
> ## COMMON UTILITY CODE
> ##
>
>+# commonly used ASCII values
>+ASC_TAB=" "
>+ASC_NL="
>+"
>+
> # determine name of tool
> if [ ".$tool" != . ]; then
> # used inside shtool script
>@@ -207,6 +245,10 @@
> eval `echo h.$opt_spec |\
> sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'`
>
>+# parse option alias string
>+eval `echo h:help,$opt_alias |\
>+ tr 'x-' 'x_' | sed -e
>'s/\([a-zA-Z0-9]\):\([^,]*\),*/opt_ALIAS_\2=\1;/g'`
>+
> # interate over argument line
> opt_PREV=''
> while [ $# -gt 0 ]; do
>@@ -227,6 +269,18 @@
> else
> # split argument into option and argument
> case "$1" in
>+ --[a-zA-Z0-9]*=*)
>+ eval `echo "x$1" |\
>+ sed -e
>'s/^x--\([a-zA-Z0-9-]*\)=\(.*\)$/opt_OPT="\1";opt_ARG="\2"/'`
>+ opt_STR=`echo $opt_OPT | tr 'x-' 'x_'`
>+ eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
>+ ;;
>+ --[a-zA-Z0-9]*)
>+ opt_OPT=`echo "x$1" | cut -c4-`
>+ opt_STR=`echo $opt_OPT | tr 'x-' 'x_'`
>+ eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
>+ opt_ARG=''
>+ ;;
> -[a-zA-Z0-9]*)
> eval `echo "x$1" |\
> sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \
>@@ -266,17 +320,17 @@
> ;;
> '+' )
> # option with argument (multiple occurances append)
>- eval "opt_${opt_OPT}=\"\$opt_${opt_OPT} \$opt_ARG\""
>+ eval "opt_${opt_OPT}=\"\$opt_${opt_OPT}\${ASC_NL}\$opt_ARG\""
> ;;
> * )
>- echo "$msgprefix:Error: unknown option: \`-$opt_OPT'" 1>&2
>+ echo "$msgprefix:Error: unknown option: \`$opt_OPT'" 1>&2
> echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man
>shtool' for details" 1>&2
> exit 1
> ;;
> esac
> done
> if [ ".$opt_PREV" != . ]; then
>- echo "$msgprefix:Error: missing argument to option \`-$opt_PREV'" 1>&2
>+ echo "$msgprefix:Error: missing argument to option \`$opt_PREV'" 1>&2
> echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for
>details" 1>&2
> exit 1
> fi
>@@ -329,7 +383,7 @@
> echo )
> ##
> ## echo -- Print string with optional construct expansion
>- ## Copyright (c) 1998-2001 Ralf S. Engelschall <[EMAIL PROTECTED]>
>+ ## Copyright (c) 1998-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
> ## Originally written for WML as buildinfo
> ##
>
>@@ -362,7 +416,7 @@
> term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49,
>109); }' </dev/null 2>/dev/null`
> term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }'
></dev/null 2>/dev/null`
> ;;
>- vt100|vt100*)
>+ vt100|vt100*|cygwin)
> term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91,
>49, 109, 0, 0); }' </dev/null 2>/dev/null`
> term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109,
>0, 0); }' </dev/null 2>/dev/null`
> ;;
>@@ -380,7 +434,7 @@
> fi
> done
> if [ ".$term_bold" != . ]; then
>- for seq in sgr0 me rmso reset; do #
>'reset' is last
>+ for seq in sgr0 me rmso init reset; do #
>'reset' is last
> norm="`$dir/$tool $seq 2>/dev/null`"
> if [ ".$norm" != . ]; then
> term_norm="$norm"
>@@ -399,6 +453,8 @@
> esac
> if [ ".$term_bold" = . -o ".$term_norm" = . ]; then
> echo "$msgprefix:Warning: unable to determine terminal
>sequence for bold mode" 1>&2
>+ term_bold=''
>+ term_norm=''
> fi
> fi
>
>@@ -498,13 +554,13 @@
> if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%d'`" != . ]; then
> if [ ".$domainname" = . ]; then
> if [ -f /etc/resolv.conf ]; then
>- domainname="`egrep '^[ ]*domain' /etc/resolv.conf
>| head -1 |\
>+ domainname="`egrep '^[ ]*domain' /etc/resolv.conf
>| sed -e 'q' |\
> sed -e 's/.*domain//' \
> -e 's/^[ ]*//' -e 's/^ *//' -e
>'s/^ *//' \
> -e 's/^\.//' -e 's/^/./' |\
> awk '{ printf("%s", $1); }'`"
> if [ ".$domainname" = . ]; then
>- domainname="`egrep '^[ ]*search' /etc/resolv.conf
>| head -1 |\
>+ domainname="`egrep '^[ ]*search' /etc/resolv.conf
>| sed -e 'q' |\
> sed -e 's/.*search//' \
> -e 's/^[ ]*//' -e 's/^ *//' -e
>'s/^ *//' \
> -e 's/ .*//' -e 's/ .*//' \
>@@ -581,10 +637,32 @@
> install )
> ##
> ## install -- Install a program, script or datafile
>- ## Copyright (c) 1997-2001 Ralf S. Engelschall <[EMAIL PROTECTED]>
>+ ## Copyright (c) 1997-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
> ## Originally written for shtool
> ##
>
>+ # special case: "shtool install -d <dir> [...]" internally
>+ # maps to "shtool mkdir -f -p -m 755 <dir> [...]"
>+ if [ "$opt_d" = yes ]; then
>+ cmd="$0 mkdir -f -p -m 755"
>+ if [ ".$opt_o" != . ]; then
>+ cmd="$cmd -o '$opt_o'"
>+ fi
>+ if [ ".$opt_g" != . ]; then
>+ cmd="$cmd -g '$opt_g'"
>+ fi
>+ if [ ".$opt_v" = .yes ]; then
>+ cmd="$cmd -v"
>+ fi
>+ if [ ".$opt_t" = .yes ]; then
>+ cmd="$cmd -t"
>+ fi
>+ for dir in "$@"; do
>+ eval "$cmd $dir" || exit $?
>+ done
>+ exit 0
>+ fi
>+
> # determine source(s) and destination
> argc=$#
> srcs=""
>@@ -657,7 +735,9 @@
> # adjust the target file
> if [ ".$opt_e" != . ]; then
> sed='sed'
>- for e in $opt_e; do
>+ OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_e; IFS="$OIFS"
>+ for e
>+ do
> sed="$sed -e '$e'"
> done
> cp $dsttmp $dsttmp.old
>@@ -718,7 +798,7 @@
> mkdir )
> ##
> ## mkdir -- Make one or more directories
>- ## Copyright (c) 1996-2001 Ralf S. Engelschall <[EMAIL PROTECTED]>
>+ ## Copyright (c) 1996-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
> ## Originally written for public domain by Noah Friedman
><[EMAIL PROTECTED]>
> ## Cleaned up and enhanced for shtool
> ##
>@@ -741,6 +821,18 @@
> echo "mkdir $p" 1>&2
> fi
> mkdir $p || errstatus=$?
>+ if [ ".$opt_o" != . ]; then
>+ if [ ".$opt_t" = .yes ]; then
>+ echo "chown $opt_o $p" 1>&2
>+ fi
>+ chown $opt_o $p || errstatus=$?
>+ fi
>+ if [ ".$opt_g" != . ]; then
>+ if [ ".$opt_t" = .yes ]; then
>+ echo "chgrp $opt_g $p" 1>&2
>+ fi
>+ chgrp $opt_g $p || errstatus=$?
>+ fi
> if [ ".$opt_m" != . ]; then
> if [ ".$opt_t" = .yes ]; then
> echo "chmod $opt_m $p" 1>&2
>@@ -766,6 +858,18 @@
> echo "mkdir $pathcomp" 1>&2
> fi
> mkdir $pathcomp || errstatus=$?
>+ if [ ".$opt_o" != . ]; then
>+ if [ ".$opt_t" = .yes ]; then
>+ echo "chown $opt_o $pathcomp" 1>&2
>+ fi
>+ chown $opt_o $pathcomp || errstatus=$?
>+ fi
>+ if [ ".$opt_g" != . ]; then
>+ if [ ".$opt_t" = .yes ]; then
>+ echo "chgrp $opt_g $pathcomp" 1>&2
>+ fi
>+ chgrp $opt_g $pathcomp || errstatus=$?
>+ fi
> if [ ".$opt_m" != . ]; then
> if [ ".$opt_t" = .yes ]; then
> echo "chmod $opt_m $pathcomp" 1>&2
>
>
--
<- For Sale! ->
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php