home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / cnews.tar / maint / addgroup < prev    next >
Text File  |  1995-04-27  |  1KB  |  59 lines

  1. #! /bin/sh
  2. # addgroup - add a newsgroup, locally only
  3.  
  4. # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
  5. . ${NEWSCONFIG-/etc/news/bin/config}
  6.  
  7. PATH=$NEWSCTL/bin:$NEWSBIN/maint:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH ; export PATH
  8. umask $NEWSUMASK
  9.  
  10. usage="Usage: $0 groupname {y|n|m|x|=realgroup}"
  11.  
  12. case $# in
  13. 2)    ;;
  14. *)    echo "$usage" >&2 ; exit 2    ;;
  15. esac
  16.  
  17. case "$1" in
  18. */*)    echo "$usage" >&2 ; exit 2    ;;
  19. esac
  20.  
  21. case "$2" in
  22. [ynmx])    ;;
  23. =*/*)    echo "$usage" >&2 ; exit 2    ;;
  24. =*)    ;;
  25. *)    echo "$usage" >&2 ; exit 2    ;;
  26. esac
  27.  
  28. already="`awk '\$1 == \"'"$1"'\"' $NEWSCTL/active`"
  29. if test " $already" != " "
  30. then
  31.     echo "$0: $1 appears to exist already: \`$already'" >&2
  32.     exit 1
  33. fi
  34.  
  35. lock -v LOCK $$ 5 || exit 1
  36. trap "unlock LOCK ; trap 0 ; exit 0" 0 1 2 15
  37.  
  38. max=0000000000
  39. case "$2" in
  40. [x=]*)    ;;
  41. *)    d=`echo $1 | tr . /`
  42.     hi=
  43.     if test -d $NEWSARTS/$d            # recreating old group
  44.     then
  45.         hi=`ls -f $NEWSARTS/$d | egrep '^[0-9]+$' | sort -n | tail -1`
  46.     fi
  47.     if test " $hi" != " "            # old articles still there
  48.     then
  49.         max=000$hi
  50.     fi
  51.     mkpdir $NEWSARTS/$d $NEWSOV/$d
  52.     touch $NEWSOV/$d/.overview
  53.     ;;
  54. esac
  55. echo "$1 $max 00001 $2" >>$NEWSCTL/active
  56.  
  57. SENDER=${LOGNAME-${USER-unknown}}@`newshostname`
  58. echo "$1 `now` $SENDER" >>$NEWSCTL/active.times
  59.