slew/init/save_log.rc

21 lines
448 B
Bash
Executable File

#!/bin/rc -e
fn rotate {
if ([ `{stat -c '%s' $1/0} -lt $3 ]) return
for (i in `{seq 1 $2 | tac}) {
j=`{expr $i - 1 || true}
if ([ ! -f $1/$i -a -f $1/$j ]) { break } else j=()
}
if (~ $#j 0) j=$2
for (i in `{seq 0 $j | tac}) if ([ -f $1/$i ]) {
if ([ $i -eq $2 ]) { rm $1/$i } \
else mv $1/$i $1/`{expr $i + 1 || true}
}
}
for (f in @*) if ([ -f $f ]) {
{ cat $f >> $1/0; rm $f; rotate $* } || exec cat
}
cat >> $1/0; rotate $*