home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / N / CNEWS / _CNEWS.TAR / usr / lib / newsbin / maint / addfeed < prev    next >
Encoding:
Text File  |  1994-09-02  |  1.4 KB  |  79 lines

  1. #! /bin/sh
  2. # addfeed - add an outbound feed
  3.  
  4. # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
  5. . ${NEWSCONFIG-/var/lib/news/bin/config}
  6.  
  7. PATH=$NEWSCTL/bin:$NEWSBIN/maint:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH ; export PATH
  8. umask $NEWSUMASK
  9.  
  10. usage="Usage: $0 [-L] [-f feedtype] sitename groups"
  11.  
  12. feedtype=f
  13. local=
  14. while :
  15. do
  16.     case "$1" in
  17.     -L)    local=L ; shift ;;
  18.     -f)    case "$2" in
  19.         '')    echo "$usage" >&2; exit 1;;
  20.         esac
  21.         feedtype="$2"
  22.         shift
  23.         shift
  24.         ;;
  25.     *)    break;;
  26.     esac
  27. done
  28.  
  29. case $# in
  30. 2)    ;;
  31. *)    echo "$usage" >&2 ; exit 2    ;;
  32. esac
  33.  
  34. case "$1$2" in
  35. *:*)    echo "$usage" >&2 ; exit 2    ;;
  36. esac
  37. if egrep -s "^$1:" $NEWSCTL/sys >/dev/null
  38. then
  39.     echo "$0: sys-file entry for \`$1' already exists" >&2
  40.     exit 1
  41. fi
  42.  
  43. case "$2" in
  44. =*)    b="`echo $2 | sed 's/^=//'`"        # base system
  45.     groups="`awk -F: \"\\\$1 == \\\"$b\\\" {print \\\$2}\" $NEWSCTL/sys |
  46.                         sed \"s;to\\.$b;to.$1;\"`"
  47.     ;;
  48. *)    groups="$2"    ;;
  49. esac
  50. case "$groups" in
  51. */*)    ;;
  52. *)    groups="$groups/all"    ;;
  53. esac
  54.  
  55. lock="$NEWSCTL/LOCK"
  56. ltemp="$NEWSCTL/L.$$"
  57. echo $$ >$ltemp
  58. trap "rm -f $ltemp ; exit 0" 0 1 2 15
  59. while true
  60. do
  61.     if newslock $ltemp $lock
  62.     then
  63.         trap "rm -f $ltemp $lock ; exit 0" 0 1 2 15
  64.         break
  65.     fi
  66.     echo 'news system locked, waiting...'
  67.     sleep 5
  68. done
  69.  
  70. echo "$1:$groups:${local}${feedtype}:" >>$NEWSCTL/sys
  71. mkdir "$NEWSARTS/out.going/$1"
  72.  
  73. if egrep -s "^($1|/default/)[     ]" $NEWSCTL/batchparms >/dev/null
  74. then
  75.     : okay
  76. else
  77.     echo "$0: remember to add a line to \`batchparms' for \`$1'"
  78. fi
  79.