home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Unix System Administration Handbook 1997 October
/
usah_oct97.iso
/
news
/
cnews.tar
/
maint
/
sysck
< prev
Wrap
Text File
|
1994-09-08
|
2KB
|
45 lines
#! /bin/sh
# sysck file... - check sys file for B-Newsisms and other errors
# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/etc/news/bin/config}
PATH=$NEWSCTL/bin:$NEWSBIN:$NEWSPATH:/usr/local/bin ; export PATH
awk=gawk # gawk is preferred as it can handle arbitrarily-long lines
# first, a pass over the raw input
$awk '
/^[ ][ ]*$/ { print FILENAME ", line " NR ": non-empty blank line" }
# start of possibly-continued comment
/^#.*\\$/ { commcont = 1; start = NR; next }
# uncommented continuation line - fix/complain
/^[^#]/ && commcont > 0 && start > 0 {
print FILENAME ", line " start ": uncommented continuations follow"
start = 0 # no more complaints
}
/^#/ || commcont == 0 { } # commented or non-continuation line - ok
/^[\t ]/ && contin == 0 {
print FILENAME " line " NR " begins with whitespace;"
print "probably previous line lacks trailing backslash"
}
/.*\\$/ { contin = 1; next } # continued line
{
contin = 0; commcont = 0 # uncontinued line
}
' $*
# then a pass over the canonicalised input
$awk -f $NEWSBIN/canonsys.awk $* | $awk -F: '
$3 ~ /A/ { print "unsupported A flag in " $1 " entry; see relay/anews" }
$3 ~ /H/ { print "unsupported H flag in " $1 " entry; incredible!" }
$3 ~ /I/ && $2 !~ /ihave/ {
if ($3 ~ /F/)
print "FI flags in " $1 " entry; rewrite as n flag"
else if ($1 !~ /\.wehave(\/.*)?$/)
print "ihave/sendme specified in " $1 " entry; see doc/ihave"
}
$3 ~ /N/ { print "unsupported N flag in " $1 " entry; see I flag" }
$3 ~ /M/ { print "unsupported M flag in " $1 " entry; see newsbatch(8)" }
$3 ~ /O/ { print "unsupported O flag in " $1 " entry; see newsbatch(8)" }
$3 ~ /S/ { print "unsupported S flag in " $1 " entry for command " $4 "; omit?" }
'