From 23d1ce399ba5436615733a1acfe807e0c63d2283 Mon Sep 17 00:00:00 2001 From: Denis Knauf Date: Wed, 18 Jul 2012 16:29:29 +0200 Subject: [PATCH] getopt -> getopts (better builtin, because getopt-quoting ist horrible). Makefile: lmtab.example added --- Makefile | 10 ++++++---- logarchiver | 32 +++++++++++++++----------------- logcleaner | 19 +++++++------------ logcompressor | 10 +++------- logmanager | 33 ++++++++++++++------------------- 5 files changed, 45 insertions(+), 59 deletions(-) diff --git a/Makefile b/Makefile index 721c1c8..d8e20bc 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -logmanager.tar: logmanager logarchiver logcompressor logcleaner Makefile +logmanager.tar: logmanager logarchiver logcompressor logcleaner Makefile lmtab.example pax -w -s '!^!logmanager/!' -f $@ -- $^ %.tar.gz: %.tar @@ -15,15 +15,17 @@ testdir: mkdir $@ testdir/.lmtab: testdir - echo $ $@.tmp + echo ./ \*.log 60 > $@.tmp mv $@.tmp $@ testdir/.prepare: testdir testdir/.lmtab + touch $/dev/null`" ] then a="`dirname "$1"`/archive" - '"$n"' mkdir -p -- "$a" - '"$n"' mv '$i' -- "$1" "$a" + '"${n}"' mkdir -p -- "$a" + '"${n}"' mv '$i' -- "$1" "$a" fi ' -- '{}' \; done diff --git a/logcleaner b/logcleaner index 0f050df..c6a6f87 100755 --- a/logcleaner +++ b/logcleaner @@ -14,22 +14,17 @@ EOF exit } -[ 0 -lt $# ] || help -x=`getopt hina: "$@"` || exit 1 -eval set -- $x - -while [ 0 -lt $# ] +while getopts hina: o do - o=$1 - shift case "$o" in - --) break ;; - -h) help ;; - -a) a=$1 ; shift ;; - -i) i=-i ;; - -n) n=echo ;; + -) break ;; + h) help ;; + a) a="$OPTARG" ; shift ;; + i) i=-i ;; + n) n=echo ;; esac done +shift $(($OPTIND-1)) [ 0 -lt $# ] || help [ X = X"$a" ] || a="-mtime +$a" diff --git a/logcompressor b/logcompressor index cdb3110..ba10d14 100755 --- a/logcompressor +++ b/logcompressor @@ -10,15 +10,10 @@ EOF exit } -[ 0 -lt $# ] || help -x=`getopt he:ngblxc: "$@"` || exit 1 -eval set -- $x p=gzip -while [ 0 -lt $# ] +while getopts he:ngblxc: o do - o=$1 - shift case "$o" in --) break ;; -h) help ;; @@ -27,9 +22,10 @@ do -b) p=bzip2 ;; -l) p=lzma ;; -x) p=xz ;; - -c) p="$1" ; shift ;; + -c) p="$OPTARG" ;; esac done +shift $(($OPTIND-1)) [ 0 -lt $# ] || help diff --git a/logmanager b/logmanager index 2561b2d..06a82e6 100755 --- a/logmanager +++ b/logmanager @@ -25,27 +25,23 @@ with_n() { "$cmd" -n "$@" } -x=`getopt hc:a:r:z:C:nN "$@"` || exit 1 -eval set -- $x - -while [ 0 -lt $# ] +while getopts hc:a:r:z:C:nN o do - o=$1 - shift case "$o" in - --) break ;; - -h) help ;; - -c) c=$1 ; shift ;; - -a) archiver="$1" ; shift ;; - -r) rotator="$1" ; shift ;; - -z) compressor="$1" ; shift ;; - -C) cleaner="$1" ; shift ;; - -n) cmd=echo ;; - -N) cmd=with_n ;; + h) help ;; + c) c="$OPTARG" ;; + a) archiver="$OPTARG" ;; + r) rotator="$OPTARG" ;; + z) compressor="$OPTARG" ;; + C) cleaner="$OPTARG" ;; + n) cmd=echo ;; + N) cmd=with_n ;; + *) help ;; esac done +shift $(($OPTIND-1)) -for n in $c ./lmtab ~/.lmtab /etc/lmtab +for n in "$c" ./lmtab ~/.lmtab /etc/lmtab do if [ -f "$n" ] then @@ -60,7 +56,7 @@ then exit 1 fi -# Format: Verzeichnis [Ausdruck[,Ausdruck[,...]] [Aufbewahrungszeit]] +# Format: Verzeichnis [Ausdruck[/Ausdruck[,...]] [Aufbewahrungszeit]] # Verzeichnisse duerfen nur einmalig Vorkommen sed -ne 's/#.*//;/\//p' "$c" | while read dir exp age opts do @@ -69,8 +65,7 @@ do do e="`basename "${exp}"`" exp="`dirname "${exp}"`" - [ X = "X$e" ] || e="-e $e" - $cmd $archiver "$e" "$dir" + $cmd $archiver -e "$e" "$dir" done $cmd $compressor "$dir" [ 0 = "$age" ] || $cmd $cleaner "$age" "$dir"