Annotation of 43BSD/contrib/news/src/checkgroups.sh, revision 1.1.1.1

1.1       root        1: : check active file for missing or extra newsgroups
                      2: : '@(#)checkgroups     1.12    1/17/86'
                      3: 
                      4: # Read first line of stdin.  If of the form "-n group", then only check
                      5: # for the specified group.  Otherwise, assume doing net and fa.
                      6: sed -e '/^[a-zA-Z-]*: /d' -e '/^$/d' -e '/^[#:]/d' | (
                      7: read line
                      8: case "${line}" in
                      9: -n*)
                     10:        # Doing specific group.  extract group name and preserve
                     11:        # all of current newsgroups file except for that group.
                     12:        # Then append entries for this group.
                     13:        group=`echo ${line} | sed -e 's/-n /^/' -e 's/$/\\\\./'`
                     14:        egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a
                     15:        cat /tmp/$$a - > LIBDIR/newsgroups
                     16:        ;;
                     17: *)
                     18:        group="^net\\.|^fa\\.|^mod\\."
                     19:        egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a
                     20:        cat /tmp/$$a > LIBDIR/newsgroups
                     21:        echo "${line}" >> LIBDIR/newsgroups
                     22:        cat >> LIBDIR/newsgroups
                     23:        ;;
                     24: esac
                     25: echo junk >/tmp/$$a
                     26: echo control >>/tmp/$$a
                     27: sed 's/[ \     ].*//' LIBDIR/newsgroups |
                     28:        egrep "${group}|^general" >>/tmp/$$a
                     29: sort -u /tmp/$$a -o /tmp/$$a
                     30: egrep "${group}|^general|^junk|^control" LIBDIR/active | sed 's/ .*//' | sort  -u >/tmp/$$b
                     31: 
                     32: comm -13 /tmp/$$a /tmp/$$b >/tmp/$$remove
                     33: comm -23 /tmp/$$a /tmp/$$b >/tmp/$$add
                     34: 
                     35: if test -s /tmp/$$remove
                     36: then
                     37:        (
                     38:        echo "The following newsgroups are not valid and should be removed."
                     39:        sed "s/^/       /" /tmp/$$remove
                     40:        echo ""
                     41:        echo "You can do this by executing the command:"
                     42:        echo \  LIBDIR/rmgroup `cat /tmp/$$remove`
                     43:        echo ""
                     44:        ) 2>&1 >/tmp/$$out
                     45: fi
                     46: 
                     47: if test -s /tmp/$$add
                     48: then
                     49:        (
                     50:        echo "The following newsgroups were missing and should be added."
                     51:        sed "s/^/       /" /tmp/$$add
                     52:        echo ""
                     53:        echo "You can do this by executing the command(s):"
                     54:        for i in `cat /tmp/$$add`
                     55:        do
                     56:                echo 'LIBDIR/inews -n control -d local -t "cmsg newgroup '$i'" </dev/null'
                     57:        done
                     58:        ) 2>&1 >>/tmp/$$out
                     59: fi
                     60: 
                     61: if test -s /tmp/$$out
                     62: then
                     63:        (echo   "Subject: Problems with your active file"
                     64:        echo ""
                     65:        cat /tmp/$$out
                     66:        ) | if test $# -gt 0
                     67:                then
                     68:                        mail $1
                     69:                else
                     70:                        cat
                     71:                fi      
                     72: fi
                     73: )
                     74: 
                     75: rm -f /tmp/$$*

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.