Provided by: cnews_cr.g7-39_i386
spacefor - check available space for news
queuelen - get length of outbound-news uucp queues
sizeof - get size of file(s) for news
ctime, getabsdate - convert dates to and from internal representation
newshostname - get host name for news
gngp - search text using a newsgroup pattern
canonhdr - extract header and canonicalize
newslock - do locking for news
/usr/lib/news/spacefor filesize location [ site ]
/usr/lib/news/sizeof [ -i ] file ...
/usr/lib/news/ctime [ -i ] [ -u ] decimaldate
/usr/lib/news/gngp [ -arv ] ngpattern file ...
/usr/lib/news/canonhdr [ -dm ] [ file ] ...
/usr/lib/news/newslock locktemp lockname
These programs are minor utilities used by various parts of C News.
Spacefor determines how many files of size filesize can fit in location
(incoming, articles, control, archive, or outbound to site) without
cramping things unduly. The precise locations of these places, and how
low space gets before it is unduly cramped, are site-specific.
Spacefor invokes df(1) or the equivalent system call to determine the
Queuelen reports how many news batches uucp has queued up for site.
Sizeof reports the total number of bytes in the file(s). (This may
seem redundant with ls -l, but the format of ls -l varies between
systems and sizeof looks after all that.) Nonexistent files are
silently ignored. If the -i option is given, sizeof prints one line
per (existing) file, with name and size, and does not print the total.
Ctime and getabsdate convert dates in human-readable form to
(getabsdate) and from (ctime) decimal ASCII representations of Unix’s
internal integer dates. Their functionality resembles that of their
namesakes in the C library. Getabsdate parses only absolute dates, not
relative dates. Under -u, ctime will print GMT instead of local time.
Under -i, ctime will print the time in GMT in Internet format.
Newshostname reports the name of this system for news purposes. This
may differ from the name of the particular CPU it is run on; a cluster
of CPUs sharing a filesystem tree would all have the same newshostname
name. Typically newshostname gets the name from /var/lib/news/whoami;
failing that, it consults various other possible sources (e.g. the
Gngp resembles grep except that its search is based on newsgroup
patterns (e.g. ‘comp’, which matches ‘comp’, ‘comp.lang’,
‘comp.lang.c’, ...; ‘comp,!comp.lang.c’ which matches ‘comp’ and
‘comp.lang’ but not ‘comp.lang.c’; etc.). Gngp prints only the line(s)
that contain a substring that matches the ngpattern. Normally the
substring must run from a point in the line to its end. If the -a flag
is given, the eligible substrings start at the beginning of the line
and end at white space or the end of the line. The -v option prints
only lines that do not match. The -r flag reverses the inputs, with
patterns coming from the file and the argument taken as the line(s).
Canonhdr takes the concatenation of its input file(s) (standard input
if none) as an article, and outputs the header from the article with
header keywords canonicalized for easier processing. Canonicalization
forces all alphabetics to lower case except the first letter of each
(hyphen-separated) word in the keyword, which is forced to upper case.
(One exception: ‘‘Message-ID’’ is the canonical form of [e.g.]
‘‘message-id’’.) Under -d, canonhdr will also canonicalise dates in
Date: and Expires: headers, adding a Date: header if none is present.
Under -m, it will accept RFC 822 headers and rewrite them as RFC 1036
Newslock makes a link named lockname to the file locktemp, and returns
exit status 0 for success, 1 if the link could not be made (typically
because lockname already existed). This is used for shell-file locking
in C News. It is a subset of ln(1) except that (a) no error messages
are ever produced and (b) the link is guaranteed to fail if lockname
already exists. (Some brain-damaged versions of ln helpfully remove
lockname in that case, making them useless for locking.)
/usr/spool/uucp/* uucp queues
/var/lib/news/whoami news host name
/var/lib/news/L.* lock temporaries
/var/lib/news/LOCK* lock files
df(1), uucp(1), ls(1), ctime(3), grep(1), newsdb(5), expire(8CN),
newsbatch(8CN), rnews(8CN), newsmaint(8CN)
Internet RFCs 822, 1036 and 1123
Written at U of Toronto by Henry Spencer and Geoff Collyer.
Spacefor and queuelen are unfortunately somewhat system-specific, since
df output and uucp file layout vary between different versions. (Using
system calls in spacefor doesn’t help, as the system calls differ too.)
Queuelen probably ought to count bytes rather than batches, but that
would make its system-dependency even worse.
The need for sizeof and newslock is a botch.
Ctime probably shouldn’t assume GMT under -i, but dealing with local
time zones gets into a swamp of portability problems.
25 Aug 1994 NEWSAUX(8cn)