OSSP CVS Repository

ossp - Check-in [5091]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 5091
Date: 2005-Jun-15 10:14:35 (local)
2005-Jun-15 08:14:35 (UTC)
User:rse
Branch:
Comment: Adjust copyright for year 2005
Tickets:
Inspections:
Files:
ossp-pkg/shtool/ChangeLog      1.211 -> 1.212     3 inserted, 0 deleted
ossp-pkg/shtool/Makefile.in      1.50 -> 1.51     1 inserted, 1 deleted
ossp-pkg/shtool/README      1.106 -> 1.107     1 inserted, 1 deleted
ossp-pkg/shtool/configure.ac      1.5 -> 1.6     2 inserted, 2 deleted
ossp-pkg/shtool/devtool.func      1.5 -> 1.6     1 inserted, 1 deleted
ossp-pkg/shtool/sh.arx      1.22 -> 1.23     1 inserted, 1 deleted
ossp-pkg/shtool/sh.echo      1.38 -> 1.39     1 inserted, 1 deleted
ossp-pkg/shtool/sh.fixperm      1.18 -> 1.19     1 inserted, 1 deleted
ossp-pkg/shtool/sh.install      1.31 -> 1.32     1 inserted, 1 deleted
ossp-pkg/shtool/sh.mdate      1.14 -> 1.15     1 inserted, 1 deleted
ossp-pkg/shtool/sh.mkdir      1.24 -> 1.25     1 inserted, 1 deleted
ossp-pkg/shtool/sh.mkln      1.18 -> 1.19     1 inserted, 1 deleted
ossp-pkg/shtool/sh.mkshadow      1.24 -> 1.25     1 inserted, 1 deleted
ossp-pkg/shtool/sh.move      1.20 -> 1.21     1 inserted, 1 deleted
ossp-pkg/shtool/sh.path      1.27 -> 1.28     1 inserted, 1 deleted
ossp-pkg/shtool/sh.platform      1.11 -> 1.12     1 inserted, 1 deleted
ossp-pkg/shtool/sh.prop      1.18 -> 1.19     1 inserted, 1 deleted
ossp-pkg/shtool/sh.rotate      added-> 1.11
ossp-pkg/shtool/sh.scpp      1.26 -> 1.27     1 inserted, 1 deleted
ossp-pkg/shtool/sh.slo      1.24 -> 1.25     1 inserted, 1 deleted
ossp-pkg/shtool/sh.subst      1.14 -> 1.15     1 inserted, 1 deleted
ossp-pkg/shtool/sh.table      1.20 -> 1.21     1 inserted, 1 deleted
ossp-pkg/shtool/sh.tarball      1.22 -> 1.23     1 inserted, 1 deleted
ossp-pkg/shtool/sh.version      1.37 -> 1.38     1 inserted, 1 deleted
ossp-pkg/shtool/shtool.m4      1.7 -> 1.8     1 inserted, 1 deleted
ossp-pkg/shtool/shtool.pod      1.67 -> 1.68     1 inserted, 1 deleted
ossp-pkg/shtool/shtool.spec      1.24 -> 1.25     1 inserted, 1 deleted
ossp-pkg/shtool/shtoolize.in      1.34 -> 1.35     3 inserted, 3 deleted
ossp-pkg/shtool/shtoolize.pod      1.12 -> 1.13     1 inserted, 1 deleted
ossp-pkg/shtool/test.db      1.22 -> 1.23     1 inserted, 1 deleted
ossp-pkg/shtool/test.sh      1.11 -> 1.12     1 inserted, 1 deleted

ossp-pkg/shtool/ChangeLog 1.211 -> 1.212

--- ChangeLog    2005/06/15 08:11:16     1.211
+++ ChangeLog    2005/06/15 08:14:35     1.212
@@ -20,6 +20,9 @@
    *) Add IBM OS/400 PASE support to "shtool platform".
       [Henri Gomez <henri.gomez@gmail.com>]
 
+   *) Adjust copyright for year 2005.
+      [Ralf S. Engelschall]
+
  Changes between 2.0.0 and 2.0.1 (02-Jul-2004 to 11-Aug-2004):
 
    *) Added M4 language output to "shtool version".


ossp-pkg/shtool/Makefile.in 1.50 -> 1.51

--- Makefile.in  2004/02/12 16:06:26     1.50
+++ Makefile.in  2005/06/15 08:14:35     1.51
@@ -1,6 +1,6 @@
 ##
 ##  Makefile for GNU shtool
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/README 1.106 -> 1.107

--- README       2004/08/11 19:14:44     1.106
+++ README       2005/06/15 08:14:35     1.107
@@ -5,7 +5,7 @@
   |___/_| |_|\__\___/ \___/|_|
 
   GNU shtool -- The GNU Portable Shell Tool
-  Copyright (c) 1994-2004 Ralf S. Engelschall <rse@engelschall.com>
+  Copyright (c) 1994-2005 Ralf S. Engelschall <rse@engelschall.com>
 
   http://www.gnu.org/software/shtool/
   ftp://ftp.gnu.org/gnu/shtool/


ossp-pkg/shtool/configure.ac 1.5 -> 1.6

--- configure.ac 2004/01/01 16:54:20     1.5
+++ configure.ac 2005/06/15 08:14:35     1.6
@@ -1,6 +1,6 @@
 dnl ##
 dnl ##  configure.ac -- Autoconf source for GNU shtool
-dnl ##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+dnl ##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 dnl ##
 dnl ##  This file is part of shtool and free software; you can redistribute
 dnl ##  it and/or modify it under the terms of the GNU General Public
@@ -24,7 +24,7 @@
 
 SHTOOL_VERSION_STR="`sh sh.version -l txt -d long VERSION`"
 sh sh.echo -e "Configuring %BGNU shtool%b (Portable Shell Tool), version %B${SHTOOL_VERSION_STR}%b"
-echo "Copyright (c) 1994-2004 Ralf S. Engelschall <rse@engelschall.com>"
+echo "Copyright (c) 1994-2005 Ralf S. Engelschall <rse@engelschall.com>"
 AC_SUBST(SHTOOL_VERSION_STR)
 
 AC_PREFIX_DEFAULT(/usr/local)


ossp-pkg/shtool/devtool.func 1.5 -> 1.6

--- devtool.func 2004/02/18 09:57:19     1.5
+++ devtool.func 2005/06/15 08:14:35     1.6
@@ -1,6 +1,6 @@
 ##
 ##  devtool.func -- Development Tool Functions
-##  Copyright (c) 2001-2004 Ralf S. Engelschall <rse@engelschall.com> 
+##  Copyright (c) 2001-2005 Ralf S. Engelschall <rse@engelschall.com> 
 ##
 
 devtool_require () {


ossp-pkg/shtool/sh.arx 1.22 -> 1.23

--- sh.arx       2005/06/15 08:11:16     1.22
+++ sh.arx       2005/06/15 08:14:35     1.23
@@ -1,6 +1,6 @@
 ##
 ##  arx -- Extended archive command
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.echo 1.38 -> 1.39

--- sh.echo      2004/02/12 16:06:26     1.38
+++ sh.echo      2005/06/15 08:14:35     1.39
@@ -1,6 +1,6 @@
 ##
 ##  echo -- Print string with optional construct expansion
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.fixperm 1.18 -> 1.19

--- sh.fixperm   2004/02/12 16:06:26     1.18
+++ sh.fixperm   2005/06/15 08:14:35     1.19
@@ -1,6 +1,6 @@
 ##
 ##  fixperm -- Fix file permissions inside a source tree
-##  Copyright (c) 1996-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1996-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.install 1.31 -> 1.32

--- sh.install   2004/02/12 16:06:26     1.31
+++ sh.install   2005/06/15 08:14:35     1.32
@@ -1,6 +1,6 @@
 ##
 ##  install -- Install a program, script or datafile
-##  Copyright (c) 1997-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1997-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.mdate 1.14 -> 1.15

--- sh.mdate     2004/02/12 16:06:26     1.14
+++ sh.mdate     2005/06/15 08:14:35     1.15
@@ -1,7 +1,7 @@
 ##
 ##  mdate -- Pretty-print modification time of a file or dir
 ##  Copyright (c) 1995-1997 Free Software Foundation, Inc.
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.mkdir 1.24 -> 1.25

--- sh.mkdir     2004/02/12 16:06:27     1.24
+++ sh.mkdir     2005/06/15 08:14:35     1.25
@@ -1,6 +1,6 @@
 ##
 ##  mkdir -- Make one or more directories
-##  Copyright (c) 1996-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1996-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.mkln 1.18 -> 1.19

--- sh.mkln      2004/02/12 16:06:27     1.18
+++ sh.mkln      2005/06/15 08:14:35     1.19
@@ -1,6 +1,6 @@
 ##
 ##  mkln -- Make link with calculation of relative paths
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.mkshadow 1.24 -> 1.25

--- sh.mkshadow  2004/02/12 16:06:27     1.24
+++ sh.mkshadow  2005/06/15 08:14:35     1.25
@@ -1,6 +1,6 @@
 ##
 ##  mkshadow -- Make a shadow tree through symbolic links
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.move 1.20 -> 1.21

--- sh.move      2004/02/12 16:06:27     1.20
+++ sh.move      2005/06/15 08:14:35     1.21
@@ -1,6 +1,6 @@
 ##
 ##  move -- Move files with simultaneous substitution
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.path 1.27 -> 1.28

--- sh.path      2004/02/12 16:06:27     1.27
+++ sh.path      2005/06/15 08:14:35     1.28
@@ -1,6 +1,6 @@
 ##
 ##  path -- Deal with program paths
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.platform 1.11 -> 1.12

--- sh.platform  2005/06/11 10:58:10     1.11
+++ sh.platform  2005/06/15 08:14:35     1.12
@@ -1,6 +1,6 @@
 ##
 ##  platform -- Platform Identification Utility
-##  Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2003-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.prop 1.18 -> 1.19

--- sh.prop      2004/02/12 16:06:27     1.18
+++ sh.prop      2005/06/15 08:14:35     1.19
@@ -1,6 +1,6 @@
 ##
 ##  prop -- Display progress with a running propeller
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.rotate -> 1.11

*** /dev/null    Sat Apr 27 22:22:11 2024
--- -    Sat Apr 27 22:29:32 2024
***************
*** 0 ****
--- 1,590 ----
+ ##
+ ##  rotate -- Logfile rotation
+ ##  Copyright (c) 2001-2005 Ralf S. Engelschall <rse@engelschall.com>
+ ##
+ ##  This file is part of shtool and free software; you can redistribute
+ ##  it and/or modify it under the terms of the GNU General Public
+ ##  License as published by the Free Software Foundation; either version
+ ##  2 of the License, or (at your option) any later version.
+ ##
+ ##  This file is distributed in the hope that it will be useful,
+ ##  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ ##  General Public License for more details.
+ ##
+ ##  You should have received a copy of the GNU General Public License
+ ##  along with this program; if not, write to the Free Software
+ ##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ ##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ ##
+ 
+ str_tool="rotate"
+ str_usage="[-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files <count>] [-s|--size <size>] [-c|--copy] [-r|--remove] [-a|--archive-dir <dir>] [-z|--compress [<tool>:]<level>] [-b|--background] [-d|--delay] [-p|--pad <len>] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] [-M|--migrate <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>] <file> [...]"
+ arg_spec="1+"
+ opt_spec="v.t.f.n:s:c.r.a:z:b.d.p:o:g:m:M:P:E:"
+ opt_alias="v:verbose,t:trace,f:force,n:num-files,s:size,c:copy,r:remove,a:archive-dir,z:compress,b:background,d:delay,p:pad,o:owner,g:group,m:mode,M:migrate,P:prolog,E:epilog"
+ opt_v=no
+ opt_t=no
+ opt_f=no
+ opt_n=10
+ opt_s=""
+ opt_c=no
+ opt_r=no
+ opt_a=""
+ opt_z=""
+ opt_b=no
+ opt_d=no
+ opt_p=1
+ opt_o=""
+ opt_g=""
+ opt_m=""
+ opt_M=""
+ opt_P=""
+ opt_E=""
+ 
+ . ./sh.common
+ 
+ #   make sure we have at least one file to rotate
+ if [ ".$opt_n" = .0 ]; then
+     echo "$msgprefix:Error: invalid argument \`$opt_n' to option -n." 1>&2
+     shtool_exit 1
+ fi
+ 
+ #   canonicalize -s option argument
+ if [ ".$opt_s" != . ]; then
+     if [ ".`expr $opt_s : '[0-9]*$'`" != .0 ]; then
+         :
+     elif [ ".`expr $opt_s : '[0-9]*[Kk]$'`" != .0 ]; then
+         opt_s=`expr $opt_s : '\([0-9]*\)[Kk]$'`
+         opt_s=`expr $opt_s \* 1024`
+     elif [ ".`expr $opt_s : '[0-9]*[Mm]$'`" != .0 ]; then
+         opt_s=`expr $opt_s : '\([0-9]*\)[Mm]$'`
+         opt_s=`expr $opt_s \* 1048576` # 1024*1024
+     elif [ ".`expr $opt_s : '[0-9]*[Gg]$'`" != .0 ]; then
+         opt_s=`expr $opt_s : '\([0-9]*\)[Gg]$'`
+         opt_s=`expr $opt_s \* 1073741824` # 1024*1024*1024
+     else
+         echo "$msgprefix:Error: invalid argument \`$opt_s' to option -s." 1>&2
+         shtool_exit 1
+     fi
+ fi
+ 
+ #   option -d/-z consistency
+ if [ ".$opt_d" = .yes ] && [ ".$opt_z" = . ]; then
+     echo "$msgprefix:Error: option -d requires option -z." 1>&2
+     shtool_exit 1
+ fi
+ 
+ #   make sure target directory exists
+ if [ ".$opt_a" != . ]; then
+     if [ ! -d $opt_a ]; then
+         if [ ".$opt_f" = .no ]; then
+             echo "$msgprefix:Error: archive directory \`$opt_a' does not exist." 1>&2
+             shtool_exit 1
+         fi
+         mkdir $opt_a || shtool_exit $?
+         chmod 755 $opt_a
+     fi
+     if [ ! -w $opt_a ]; then
+         echo "$msgprefix:Error: archive directory \`$opt_a' not writable." 1>&2
+         shtool_exit 1
+     fi
+ fi
+ 
+ #   determine compression approach
+ if [ ".$opt_z" != . ]; then
+     comp_lvl="$opt_z"
+     comp_prg=""
+     case $comp_lvl in
+         *:* ) eval `echo $comp_lvl |\
+                     sed -e 's%^\(.*\):\(.*\)$%comp_prg="\1"; comp_lvl="\2"%'` ;;
+     esac
+ 
+     #   compression level consistency
+     case $comp_lvl in
+         [0-9] )
+             ;;
+         * ) echo "$msgprefix:Error: invalid compression level \`$comp_lvl'" 1>&2
+             shtool_exit 1
+             ;;
+     esac
+ 
+     #   determine a suitable compression tool
+     if [ ".$comp_prg" = . ]; then
+         #   check whether the test command supports the -x option
+         if [ -x /bin/sh ] 2>/dev/null; then
+             minusx="-x"
+         else
+             minusx="-r"
+         fi
+         #   search for tools in $PATH
+         paths="`echo $PATH |\
+                 sed -e 's%/*:%:%g' -e 's%/*$%%' \
+                     -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
+                     -e 's/:/ /g'`"
+         for prg in bzip2 gzip compress; do
+             for path in $paths; do
+                 if [ $minusx "$path/$prg" ] && [ ! -d "$path/$prg" ]; then
+                     comp_prg="$prg"
+                     break
+                 fi
+             done
+             if [ ".$comp_prg" != . ]; then
+                 break
+             fi
+         done
+         if [ ".$comp_prg" = . ]; then
+             echo "$msgprefix:Error: no suitable compression tool found in \$PATH" 1>&2
+             shtool_exit 1
+         fi
+     fi
+ 
+     #   determine standard compression extension
+     #   and make sure it is a known tool
+     case $comp_prg in
+         */bzip2    | bzip2    ) comp_ext="bz2" comp_lvl="-$comp_lvl" ;;
+         */gzip     | gzip     ) comp_ext="gz"  comp_lvl="-$comp_lvl" ;;
+         */compress | compress ) comp_ext="Z";  comp_lvl=""           ;;
+         * ) echo "$msgprefix:Error: tool \`$comp_prg' is not a known compression tool" 1>&2
+             shtool_exit 1
+             ;;
+     esac
+     comp_suf=".$comp_ext"
+ fi
+ 
+ #   iterate over all given logfile arguments
+ for file in $*; do
+     #   make sure the logfile exists
+     if [ ! -f $file ]; then
+         if [ ".$opt_f" = .yes ]; then
+             continue
+         fi
+         echo "$msgprefix:Error: logfile \`$file' not found" 1>&2
+         shtool_exit 1
+     fi
+ 
+     #   determine log directory (where original logfile is placed)
+     ldir="."
+     case $file in
+         */* ) eval `echo $file | sed -e 's%^\(.*\)/\([^/]*\)$%ldir="\1"; file="\2";%'` ;;
+     esac
+ 
+     #   determine archive directory (where rotated logfiles are placed)
+     adir="$ldir"
+     if [ ".$opt_a" != . ]; then
+         case "$opt_a" in
+             /* | ./* ) adir="$opt_a" ;;
+             * ) adir="$ldir/$opt_a"  ;;
+         esac
+     fi
+ 
+     #   optionally take logfile size into account
+     if [ ".$opt_s" != . ]; then
+         #   determine size of logfile
+         set -- `env -i /bin/ls -l "$ldir/$file" | sed -e "s;$ldir/$file;;" |\
+                 sed -e 's; -> .*$;;' -e 's;[   ][      ]*; ;g'`
+         n=`expr $# - 3`
+         eval "size=\`echo \${$n}\`"
+ 
+         #   skip logfile if size is still too small
+         if [ $size -lt $opt_s ]; then
+             if [ ".$opt_v" = .yes ]; then
+                 echo "$ldir/$file: still too small in size -- skipping"
+             fi
+             continue
+         fi
+     fi
+ 
+     #   verbosity
+     if [ ".$opt_v" = .yes ]; then
+         echo "rotating $ldir/$file"
+     fi
+ 
+     #   execute prolog
+     if [ ".$opt_P" != . ]; then
+         if [ ".$opt_t" = .yes ]; then
+             echo "$opt_P"
+         fi
+         eval $opt_P
+         [ $? -ne 0 ] && shtool_exit $?
+     fi
+ 
+     #   kick away out-rotated logfile
+     n=`expr $opt_n - 1`
+     n=`echo dummy | awk "{ printf(\"%0${opt_p}d\", n); }" n=$n`
+     if [ -f "${adir}/${file}.${n}${comp_suf}" ]; then
+         #   optionally migrate away the out-rotated logfile
+         if [ ".$opt_M" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "$opt_M ${adir}/${file}.${n}${comp_suf}"
+             fi
+             eval "$opt_M ${adir}/${file}.${n}${comp_suf}"
+             [ $? -ne 0 ] && shtool_exit $?
+         fi
+         #   finally get rid of the out-rotated logfile
+         if [ ".$opt_t" = .yes ]; then
+             echo "rm -f ${adir}/${file}.${n}${comp_suf}"
+         fi
+         rm -f ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+     fi
+ 
+     #   rotate already archived logfiles
+     while [ $n -gt 0 ]; do
+         m=$n
+         n=`expr $n - 1`
+         n=`echo dummy | awk "{ printf(\"%0${opt_p}d\", n); }" n=$n`
+         if [ $n -eq 0 ] && [ ".$opt_d" = .yes ]; then
+             #   special case: first rotation file under delayed compression situation
+             if [ ! -f "${adir}/${file}.${n}" ]; then
+                 continue
+             fi
+ 
+             #   compress file (delayed)
+             if [ ".$opt_b" = .yes ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "mv ${adir}/${file}.${n} ${adir}/${file}.${m}"
+                 fi
+                 mv ${adir}/${file}.${n} ${adir}/${file}.${m} || shtool_exit $?
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "(${comp_prg} ${comp_lvl} <${adir}/${file}.${m} >${adir}/${file}.${m}${comp_suf}; rm -f ${adir}/${file}.${m}) &"
+                 fi
+                 ( ${comp_prg} ${comp_lvl} \
+                       <${adir}/${file}.${m} \
+                       >${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+                   rm -f ${adir}/${file}.${m} || shtool_exit $?
+                 ) </dev/null >/dev/null 2>&1 &
+             else
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${m}${comp_suf}"
+                 fi
+                 ${comp_prg} ${comp_lvl} \
+                     <${adir}/${file}.${n} \
+                     >${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "rm -f ${adir}/${file}.${n}"
+                 fi
+                 rm -f ${adir}/${file}.${n} || shtool_exit $?
+             fi
+ 
+             #   fix file attributes
+             if [ ".$opt_o" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chown $opt_o ${adir}/${file}.${m}${comp_suf}"
+                 fi
+                 chown $opt_o ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+             fi
+             if [ ".$opt_g" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chgrp $opt_g ${adir}/${file}.${m}${comp_suf}"
+                 fi
+                 chgrp $opt_g ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+             fi
+             if [ ".$opt_m" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chmod $opt_m ${adir}/${file}.${m}${comp_suf}"
+                 fi
+                 chmod $opt_m ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+             fi
+         else
+             #   standard case: second and following rotation file
+             if [ ! -f "${adir}/${file}.${n}${comp_suf}" ]; then
+                 continue
+             fi
+             if [ ".$opt_t" = .yes ]; then
+                 echo "mv ${adir}/${file}.${n}${comp_suf} ${adir}/${file}.${m}${comp_suf}"
+             fi
+             mv ${adir}/${file}.${n}${comp_suf} ${adir}/${file}.${m}${comp_suf} || shtool_exit $?
+         fi
+     done
+ 
+     #   move away current logfile
+     if [ ".$opt_c" = .yes ]; then
+         #   approach: copy[+truncate]
+         if [ ".$opt_t" = .yes ]; then
+             echo "cp -p ${ldir}/${file} ${adir}/${file}.${n}"
+         fi
+         cp -p ${ldir}/${file} ${adir}/${file}.${n} || shtool_exit $?
+         if [ ".$opt_r" = .no ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "cp /dev/null ${ldir}/${file}"
+             fi
+             cp /dev/null ${ldir}/${file} || shtool_exit $?
+         fi
+     else
+         #   approach: move[+touch]
+         if [ ".$opt_t" = .yes ]; then
+             echo "mv ${ldir}/${file} ${adir}/${file}.${n}"
+         fi
+         mv ${ldir}/${file} ${adir}/${file}.${n} || shtool_exit $?
+         if [ ".$opt_r" = .no ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "touch ${ldir}/${file}"
+             fi
+             touch ${ldir}/${file} || shtool_exit $?
+             #   fix file attributes
+             if [ ".$opt_o" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chown $opt_o ${ldir}/${file}"
+                 fi
+                 chown $opt_o ${ldir}/${file} || shtool_exit $?
+             fi
+             if [ ".$opt_g" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chgrp $opt_g ${ldir}/${file}"
+                 fi
+                 chgrp $opt_g ${ldir}/${file} || shtool_exit $?
+             fi
+             if [ ".$opt_m" != . ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "chmod $opt_m ${ldir}/${file}"
+                 fi
+                 chmod $opt_m ${ldir}/${file} || shtool_exit $?
+             fi
+         fi
+     fi
+ 
+     #   regular compression step
+     if [ ".$opt_z" != . ] && [ ".$opt_d" = .no ]; then
+         #   compress file
+         if [ ".$opt_b" = .yes ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "(${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${n}${comp_suf}; rm -f ${adir}/${file}.${n}) &"
+             fi
+             ( ${comp_prg} ${comp_lvl} \
+                   <${adir}/${file}.${n} \
+                   >${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+               rm -f ${adir}/${file}.${n} || shtool_exit $?
+             ) </dev/null >/dev/null 2>&1 &
+         else
+             if [ ".$opt_t" = .yes ]; then
+                 echo "${comp_prg} ${comp_lvl} <${adir}/${file}.${n} >${adir}/${file}.${n}${comp_suf}"
+             fi
+             ${comp_prg} ${comp_lvl} \
+                 <${adir}/${file}.${n} \
+                 >${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+             if [ ".$opt_t" = .yes ]; then
+                 echo "rm -f ${opt_a}${file}.${n}"
+             fi
+             rm -f ${adir}/${file}.${n} || shtool_exit $?
+         fi
+ 
+         #   fix file attributes
+         if [ ".$opt_o" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chown $opt_o ${adir}/${file}.${n}${comp_suf}"
+             fi
+             chown $opt_o ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+         fi
+         if [ ".$opt_g" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chgrp $opt_g ${adir}/${file}.${n}${comp_suf}"
+             fi
+             chgrp $opt_g ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+         fi
+         if [ ".$opt_m" != . ]; then
+             if [ ".$opt_t" = .yes ]; then
+                 echo "chmod $opt_m ${adir}/${file}.${n}${comp_suf}"
+             fi
+             chmod $opt_m ${adir}/${file}.${n}${comp_suf} || shtool_exit $?
+         fi
+     fi
+ 
+     #   execute epilog
+     if [ ".$opt_E" != . ]; then
+         if [ ".$opt_t" = .yes ]; then
+             echo "$opt_E"
+         fi
+         eval $opt_E
+         [ $? -ne 0 ] && shtool_exit $?
+     fi
+ done
+ 
+ shtool_exit 0
+ 
+ ##
+ ##  manual page
+ ##
+ 
+ =pod
+ 
+ =head1 NAME
+ 
+ B<shtool rotate> - B<GNU shtool> log file rotation
+ 
+ =head1 SYNOPSIS
+ 
+ B<shtool rotate>
+ [B<-v>|B<--verbose>]
+ [B<-t>|B<--trace>]
+ [B<-f>|B<--force>]
+ [B<-n>|B<--num-files> I<count>]
+ [B<-s>|B<--size> I<size>]
+ [B<-c>|B<--copy>]
+ [B<-r>|B<--remove>]
+ [B<-a>|B<--archive-dir> I<dir>]
+ [B<-z>|B<--compress> [I<tool>:]I<level>]
+ [B<-b>|B<--background>]
+ [B<-d>|B<--delay>]
+ [B<-p>|B<--pad> I<len>]
+ [B<-m>|B<--mode> I<mode>]
+ [B<-o>|B<--owner> I<owner>]
+ [B<-g>|B<--group> I<group>]
+ [B<-M>|B<--migrate> I<cmd>]
+ [B<-P>|B<--prolog> I<cmd>]
+ [B<-E>|B<--epilog> I<cmd>]
+ I<file> [I<file> ...]
+ 
+ =head1 DESCRIPTION
+ 
+ This command rotates a logfile I<file> by subsequently creating up to
+ I<count> (optionally compressed) archive files of it. Archive files are
+ named "I<file>.I<number>[I<compress-suffix]>" where I<number> is the
+ version number, 0 being the newest and "I<count>-1" the oldest.
+ 
+ A rotation step consists of the following steps
+ 
+ 1. remove last archive file
+ 2. shift archive file numbers
+ 3. create archive file 0 from I<file>
+ 4. truncate/recreate I<file>
+ 
+ =head1 OPTIONS
+ 
+ The following command line options are available.
+ 
+ =over 4
+ 
+ =item B<-v>, B<--verbose>
+ 
+ Display some processing information.
+ 
+ =item B<-t>, B<--trace>
+ 
+ Enable the output of the essential shell commands which are executed.
+ 
+ =item B<-f>, B<--force>
+ 
+ Force silent creation of archive directory if it does not exists. Also
+ skip missing intermediate logfiles in the rotation step. Default is to
+ exit with error in both cases. FIXME
+ 
+ =item B<-n>, B<--num-files> I<count>
+ 
+ Create I<count> archive files. Default is 10.
+ 
+ =item B<-s>, B<--size> I<size>
+ 
+ Only rotate if logfile exceeds I<size>. The argument I<size> can be
+ specified also with the trailing units C<K> (kilo), C<M> (mega) or C<G>
+ (giga). The "prolog" and "epilog" are only executed if rotation actually
+ takes place.
+ 
+ =item B<-c>, B<--copy>
+ 
+ Copy I<file> to archive then truncate original. The default is to move
+ I<file> to archive.
+ 
+ Unless an application reopens its logfile it will continue to write
+ to the same file. In the default move case the application will write
+ to the archive which it had previously opened as I<file>. In the copy
+ case the application will write to the original I<file>. The drawback
+ of the copy approach is that logfile entries are lost when they are
+ written to I<file> between the execution of the copy and the truncation
+ operation. The drawback of the move approach is that the application
+ needs to detect the move or must be triggered to reopen its log (i.e.
+ through epilog).
+ 
+ =item B<-r>, B<--remove>
+ 
+ Removes I<file> after rotation instead of providing a new empty file.
+ 
+ =item B<-a>, B<--archive-dir> I<dir>
+ 
+ Specify the archive directory. Default is to create archives in the same
+ directory as I<file> is located.
+ 
+ =item B<-z>, B<--compress> [I<tool>:]I<level>
+ 
+ Enables compression of archive files with compression level I<level> By
+ default, the tools bzip2(1), gzip(1) and compress(1) are searched for in
+ C<$PATH>, but one also can override this by prefixing the compression
+ level with one of the three particular tool names.
+ 
+ =item B<-b>, B<--background>
+ 
+ Enable background compression.
+ 
+ =item B<-d>, B<--delay>
+ 
+ Delays the compression of archive file number 0. This is useful if
+ ``B<-c>'' is not used, because an application might continue to write to
+ archive file 0 through an already open file handle.
+ 
+ =item B<-p>, B<--pad> I<len>
+ 
+ Enables padding with leading zeros in the I<number> part of the filename
+ "I<file>.I<number>I<compress-suffix>". The default padding I<len> is 1.
+ This is interesting if more than 10 archive files are used, because it
+ leads to still sorted directory listings.
+ 
+ =item B<-m>, B<--mode> I<mode>
+ 
+ The file mode applied to the created files, see chmod(1). Setting mode to
+ C<-> skips this step and leaves the operating system default which is
+ usually based on umask(1). Some file modes require superuser privileges
+ to be set. Default is 0755.
+ 
+ =item B<-o>, B<--owner> I<owner>
+ 
+ The file owner name or id applied to the created files, see chown(1). This
+ option requires superuser privileges to execute. Default is to skip this
+ step and leave the operating system default which is usually based on
+ the executing uid or the parent setuid directory.
+ 
+ =item B<-g>, B<--group> I<group>
+ 
+ The file group name or id applied to the created files, see chgrp(1). This
+ option requires superuser privileges to execute to the fullest extend,
+ otherwise the choice of I<group> is limited on most operating systems.
+ Default is to skip this step and leave the operating system default
+ which is usually based on the executing gid or the parent setgid
+ directory.
+ 
+ =item B<-M>, B<--migrate> I<cmd>
+ 
+ Execute a "migration" command just before the archive file number
+ I<count>-1 is removed from the filesystem. The specified I<cmd> receives
+ the archive filename as command line argument.
+ 
+ =item B<-P>, B<--prolog> I<cmd>
+ 
+ Execute a "prolog" command before the rotation step. Useful in
+ conjunction with B<-s>.
+ 
+ =item B<-E>, B<--epilog> I<cmd>
+ 
+ Execute a "epilog" command after the rotation step. Useful in
+ conjunction with B<-s>.
+ 
+ =back
+ 
+ =head1 EXAMPLE
+ 
+  #   shell script
+  shtool rotate -n10 -s1M -zbzip2:9 -d -r /var/log/ap.access.log
+  shtool rotate -n5 -s128K -zbzip2:9 -d -r /var/log/ap.error.log
+  apachectl graceful
+ 
+ =head1 HISTORY
+ 
+ The B<GNU shtool> B<rotate> command was originally written by Ralf S.
+ Engelschall E<lt>rse@engelschall.comE<gt> in 2001 for B<GNU shtool>.
+ Its development was prompted by the need to have a flexible
+ logfile rotation facility in the B<OpenPKG> project.
+ 
+ =head1 SEE ALSO
+ 
+ shtool(1), BSD newsyslog(8).
+ 
+ =cut
+ 


ossp-pkg/shtool/sh.scpp 1.26 -> 1.27

--- sh.scpp      2004/02/12 16:06:27     1.26
+++ sh.scpp      2005/06/15 08:14:35     1.27
@@ -1,6 +1,6 @@
 ##
 ##  scpp -- Sharing C Pre-Processor
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.slo 1.24 -> 1.25

--- sh.slo       2004/02/12 16:06:27     1.24
+++ sh.slo       2005/06/15 08:14:35     1.25
@@ -1,6 +1,6 @@
 ##
 ##  slo -- Separate linker options by library class
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.subst 1.14 -> 1.15

--- sh.subst     2004/07/02 13:06:36     1.14
+++ sh.subst     2005/06/15 08:14:36     1.15
@@ -1,6 +1,6 @@
 ##
 ##  subst -- Apply sed(1) substitution operations
-##  Copyright (c) 2001-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2001-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.table 1.20 -> 1.21

--- sh.table     2004/02/12 16:06:27     1.20
+++ sh.table     2005/06/15 08:14:36     1.21
@@ -1,6 +1,6 @@
 ##
 ##  table -- Pretty-print a field-separated list as a table
-##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1998-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.tarball 1.22 -> 1.23

--- sh.tarball   2004/02/17 08:54:14     1.22
+++ sh.tarball   2005/06/15 08:14:36     1.23
@@ -1,6 +1,6 @@
 ##
 ##  tarball -- Roll distribution tarballs
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/sh.version 1.37 -> 1.38

--- sh.version   2004/07/19 07:41:34     1.37
+++ sh.version   2005/06/15 08:14:36     1.38
@@ -1,6 +1,6 @@
 ##
 ##  version -- Maintain a version information file
-##  Copyright (c) 1994-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1994-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/shtool.m4 1.7 -> 1.8

--- shtool.m4    2004/07/19 07:41:34     1.7
+++ shtool.m4    2005/06/15 08:14:36     1.8
@@ -1,6 +1,6 @@
 ##
 ##  shtool.m4 -- GNU shtool Autoconf macros
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/shtool.pod 1.67 -> 1.68

--- shtool.pod   2004/07/02 13:13:15     1.67
+++ shtool.pod   2005/06/15 08:14:36     1.68
@@ -1,6 +1,6 @@
 ##
 ##  shtool.pod -- Manual Page for shtool in POD format
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/shtool.spec 1.24 -> 1.25

--- shtool.spec  2004/08/11 19:14:44     1.24
+++ shtool.spec  2005/06/15 08:14:36     1.25
@@ -1,6 +1,6 @@
 ##
 ##  shtool.spec -- RPM specification for shtool package
-##  Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2000-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/shtoolize.in 1.34 -> 1.35

--- shtoolize.in 2004/02/12 16:06:27     1.34
+++ shtoolize.in 2005/06/15 08:14:36     1.35
@@ -1,7 +1,7 @@
 #!@PERL@
 ##
 ##  shtoolize -- Build shtool script out of ingredient scripts
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public
@@ -350,7 +350,7 @@
 #!/bin/sh
 ##
 ##  GNU shtool -- The GNU Portable Shell Tool
-##  Copyright (c) 1994-2004 Ralf S. Engelschall <rse\@engelschall.com>
+##  Copyright (c) 1994-2005 Ralf S. Engelschall <rse\@engelschall.com>
 ##
 ##  See http://www.gnu.org/software/shtool/ for more information.
 ##  See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
@@ -396,7 +396,7 @@
 fi
 if [ ".\$1" = ".-h" ] || [ ".\$1" = ".--help" ]; then
     echo "This is GNU shtool, version ${version}"
-    echo "Copyright (c) 1994-2004 Ralf S. Engelschall <rse\@engelschall.com>"
+    echo "Copyright (c) 1994-2005 Ralf S. Engelschall <rse\@engelschall.com>"
     echo "Report bugs to <bug-shtool\@gnu.org>"
     echo ''
     echo "Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]"


ossp-pkg/shtool/shtoolize.pod 1.12 -> 1.13

--- shtoolize.pod        2004/01/01 16:54:20     1.12
+++ shtoolize.pod        2005/06/15 08:14:36     1.13
@@ -1,6 +1,6 @@
 ##
 ##  shtoolize.pod -- Manual Page for shtoolize in POD format
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public


ossp-pkg/shtool/test.db 1.22 -> 1.23

--- test.db      2004/01/01 16:54:20     1.22
+++ test.db      2005/06/15 08:14:36     1.23
@@ -1,6 +1,6 @@
 ##
 ##  test.db -- GNU shtool test suite (minimalistic)
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 
 @begin{echo}


ossp-pkg/shtool/test.sh 1.11 -> 1.12

--- test.sh      2004/01/01 16:54:20     1.11
+++ test.sh      2005/06/15 08:14:36     1.12
@@ -1,7 +1,7 @@
 #!/bin/sh
 ##
 ##  test.sh -- GNU shtool test suite driver
-##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2005 Ralf S. Engelschall <rse@engelschall.com>
 ##
 ##  This file is part of shtool and free software; you can redistribute
 ##  it and/or modify it under the terms of the GNU General Public

CVSTrac 2.0.1