[net.news] USENET info utility program 'whence'

kemp@noscvax.UUCP (Stephen P. Kemp) (05/21/84)

<a non-blank line>
  Here's an attempt to make the cbosgd maps manipulable. Any comments?
      Steve Kemp
      Computer Sciences Corp.
      Naval Ocean Systems Center
      San Diego, CA

      kemp@nosc
        -or-
      ...ucbvax!sdcsvax!noscvax!kemp

# Script name: whencer              
# Usage:  % whencer                 
# Version: 840425 for csh under 4.2bsd
# Author: Steve Kemp <kemp@nosc>   ...sdcsvax!noscvax!kemp (619) 225-8401
#
#  PURPOSE:
#     Creates the whence database file by processing the contents of
#     $mapdir (which is created by cbosgd!map's shell scripts).
#
#  THIS SCRIPT IS USED:
#     After cbosgd!map's shell scripts have been run and stored into $mapdir,
#     and  before 'whence' is invoked...
#
#  THIS SCRIPT PERFORMS THE FOLLOWING FUNCTIONS: 
#     0) pushd to library of maps ($mapdir)
#     1) extract target lines from files named foo.map (e.g. usa.nj   etc.)
#     2) a) prefix foo.map:Name: lines with a tilde (~)
#        b) strip filenames out of non-Name: lines
#        c) appending a : to last line component
#     3) remove all linefeeds,
#     4) change all ~ to linefeeds (with step 2a above)
#     5) store into temp file
#     6) close temp file by appending a blank line (for sort's sake)
#     7) return to user directory
#     8) cast out lines with no Organization
#     9) sort temp file, casting out duplicates and listing to storage file.
#     10) housekeep temp file
#
# START OF SCRIPT 'whencer'
set mapdir      = /usr/lib/news/map
set whencedir   = ~kemp/net
pushd $mapdir
egrep '^Organization:|^Phone:|^Contact|^Name:|^Postal|^Electronic' *.* \
  | sed -e '/:Name:/s/^/~     --/' \
        -e '/:Organization:/s#[^[:]*##' \
        -e '/:Phone:/s#[^[:]*##' \
        -e '/:Contact:/s#[^[:]*##' \
        -e '/:Postal/s#[^[:]*##' \
        -e '/:Electronic/s#[^[:]*##' \
        -e '/:Electronic/s/$/:/' \
  | tr -d '\012' \
  | tr -s '\~' '\012' \
  > /tmp/$$
echo " " >> /tmp/$$
popd
cat /tmp/$$ \
  | sed -e '/Organization::/d' \
  | sort -u \
  > $whencedir/whencemap
/bin/rm /tmp/$$
# END OF SCRIPT 'whencer'
---------------------------------
# Script name: whence
# Usage: % whence string    -or-  % whence "string string"
# Version: 840425 for csh under 4.2bsd
# Author: Steve Kemp <kemp@nosc>   ...sdcsvax!noscvax!kemp (619) 225-8401
#
#  PURPOSE:
#    Queries data base created by whencer for a specified string and returns
#    a formatted list of sites associated with the target string.
#
#  THIS SCRIPT IS USED:
#    On demand after whencer has run (for this month)
#
#  THIS SCRIPT PERFORMS THE FOLLOWING FUNCTIONS:
#    1) Defines where the whence database file resides.
#    2) Ignoring case, extracts lines from the whence database
#    3) Translates colons (:) into newlines for display
#    4) NOTE: omitting the tr step can be useful if you want to do further
#       processing, since each site's info exists on exactly one line.
#
# START OF SCRIPT 'whence'
set whencedir = ~kemp/net
grep -i "$argv[1]" $whencedir/whencemap \
  | tr -s '\:' '\012'
# END OF SCRIPT 'whence'
---------------------------------

                E X A M P L E S

% whence korea
     --asia.rok
Name
 kaist
Organization
 Korean Advanced Institute of Science and Technology,
Contact
 Prof. Kilnam Chon, Yoon W. Kim
Phone
 +82 2 966 1931 ext. 3744, 4714
Postal-Address
 P.O. Box 150, Cheongryang, Seoul, Republic of Korea
Electronic-Address
 kaist!yoonkim
News
 hplabs dacom ketri kiet snucom
Mail
 hplabs dacom ketri kiet snucom

% whence "name: cbosgd"
     --usa.oh
Name
 cbosgd
Organization
 AT&T Bell Laboratories, Operating Systems Group
Contact
 Mark Horton
Phone
 (614) 860-4276
Postal-Address
 Rm. 2C-249, 6200 E. Broad St., Columbus, OH 43213
Electronic-Address
 cbosg!cbosgd!mark
News
 ihnp4 mhuxl cbnscs osu-dbs cbscc qusavx cbdkc1 cbuxc cbrmc
Mail
 neoucom psuvax atlas