home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- # mkhistory - rebuild history file and friends
- # Note, most sorts will accept "-T dir" to say where to put temporary files;
- # this can be gotten in by setting the SORTTMP environment variable in the
- # caller to "-T dir" and exporting it. Some sorts might ask you to do it
- # by setting TMPDIR instead.
-
- # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
- . ${NEWSCONFIG-/var/lib/news/bin/config}
-
- PATH=$NEWSCTL/bin:$NEWSBIN/expire:$NEWSBIN:$NEWSPATH ; export PATH
- umask $NEWSUMASK
-
- sizemul=
- case "$#$1" in
- 0) ;;
- 2-s) sizemul="$2" ;;
- *) echo "Usage: $0 [-s sizemultiplier]" >&2
- exit 2
- ;;
- esac
-
- lock="$NEWSCTL/LOCK"
- ltemp="$NEWSCTL/L.$$"
- echo $$ >$ltemp
- trap "rm -f $ltemp ; exit 0" 0 1 2 15
- while true
- do
- if newslock $ltemp $lock
- then
- trap "rm -f $ltemp $lock ; exit 0" 0 1 2 15
- break
- fi
- sleep 30
- done
- if newslock $ltemp $NEWSCTL/LOCKexpire
- then
- trap "rm -f $ltemp $lock $NEWSCTL/LOCKexpire ; exit 0" 0 1 2 15
- else
- echo "$0: expire is running, $0 aborted" >&2
- exit 1
- fi
-
- cd $NEWSARTS
- them=
- for f in `ls | egrep -v '\.|(^lost\+found$)'`
- do
- if test -d $f -a -r $f
- then
- them="$them $f"
- fi
- done
- find $them -type f -name '[0-9]*' -print | histinfo |
- sort $SORTTMP -t' ' +1n |
- awk -f $NEWSBIN/expire/histdups | histslash >$NEWSCTL/history.n
-
- cd $NEWSCTL
- if egrep '^<[^>]*@trash> ' history.n >/dev/null
- then
- echo "$0: (warning) empty/trash articles found, will expire at once" >&2
- echo "$0: (grep history file for '@trash' to see them)" >&2
- fi
- case "$sizemul" in
- '') dbzparm= ;;
- *) size="`wc -l <history.n`"
- awkpgm='{ printf "%ld\n", $1 * $2 }'
- # why not use expr? because it's only 16 bits wide on 16-bit machines
- dbzparm="-p `echo $size $sizemul | awk \"$awkpgm\"`"
- ;;
- esac
- dbz $dbzparm history.n
-
- if test -f history
- then
- mv history history.o
- else
- true
- fi && mv history.n history &&
- rm -f history.pag history.dir &&
- mv history.n.pag history.pag && mv history.n.dir history.dir
-