home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / usr / lib / uucp / Uutry / Uutry~
Text File  |  1998-08-19  |  2KB  |  98 lines

  1. #!/usr/bin/sh
  2. #ident    "@(#)Uutry    1.2"
  3. #ident "$Header: Uutry 1.1 91/02/28 $"
  4.  
  5. export IFS PATH
  6. IFS="     
  7. "
  8. PATH="/usr/bin"
  9.  
  10. #    This shell will start a uucico for the system given.
  11. #    Options:
  12. #      -xN the debugging level for uucico (-x5 default)
  13. #      -r  force the removal of the status file
  14. #    The output is put in /tmp/Name where Name is the name
  15. #    of the system name.  A tail -f is performed after uucico is started.
  16.  
  17. STATUS=/var/uucp/.Status
  18.  
  19. UUCICO=/usr/lib/uucp/uucico
  20. label=UX:Uutry
  21. catalog=uxUutry
  22. tty -s
  23. if [ "`pwd`" != "/usr/lib/uucp" -a "$?" = 0 -a -x "./uucico" ]; then
  24.     u1=`gettxt $catalog:1 "OK to execute uucico from current directory"`
  25.     u2=`gettxt $catalog:7 "y"`
  26.     u3=`gettxt $catalog:8 "Y"`
  27.     u4=`gettxt $catalog:9 "y/n"`
  28.     echo "$u1 (`pwd`) ($u4) \c"
  29.     read ans
  30.     if [ "$ans" = "$u2" -o "$ans" = "$u3" ]
  31.         then
  32.         UUCICO=./uucico
  33.     fi
  34. fi
  35.  
  36. REMOVE=""
  37. X="-x5"
  38. SYS=
  39. while [ $# -gt 0 ]
  40. do
  41.     case $1 in
  42.     -c)  shift; CLASS="-c$1"; shift;;
  43.     -c*) CLASS="$1"; shift;;
  44.     -x)  shift; X="-x$1"; shift;;
  45.     -x*) X=$1; shift;;
  46.     -r) REMOVE="-f"; shift;;
  47.     -?) pfmt -l $label -s error -g $catalog:3 "unrecognized flag %s\n" $1
  48.         pfmt -l $label -s action -g $catalog:4 "Usage: %s [-r] [-xdebug_level] system\n" $0
  49.         exit 1;;
  50.     *) SYS="$1"; shift;;
  51.     esac
  52. done
  53.  
  54. if [ -z "$SYS" ]
  55. then
  56.     pfmt -l $label -s error -g $catalog:5 "system name required\n"
  57.     exit 1
  58. fi
  59.  
  60. #  check for existence in Systems file
  61. #  only accept match of full name
  62. #  (important because some names may be prefixes of others!)
  63. XX=
  64. XX=`uuname | grep "^${SYS}$" `
  65. if [ -z "$XX" ]
  66. then
  67.     pfmt -l $label -s error -g $catalog:6 "Invalid system name \"%s\"\n" $SYS
  68.     exit
  69. fi
  70.  
  71. STMP=/tmp/$SYS
  72. rm -f $STMP
  73. > $STMP
  74. chmod 622 $STMP
  75. #  remove old status file (can't actually remove, since $STATUS isn't
  76. #  publicly writable, but zero-ing it out works fine)
  77. if [ -n "$REMOVE" ]; then
  78.     cp /dev/null $STATUS/${SYS} 2>/dev/null
  79. fi
  80.  
  81. echo "$UUCICO -r1 -s$SYS $CLASS $REMOVE $X >$STMP 2>&1&"
  82. $UUCICO  -r1 -s$SYS $CLASS $REMOVE $X >$STMP 2>&1&
  83. XFER=$!
  84.  
  85. echo "tmp=$STMP"
  86. #    on heavily loaded systems, may take a moment for uucico
  87. #    to create debug file.
  88. if [ ! -f $STMP ]
  89. then
  90.     sleep 5
  91. fi
  92. tail -f $STMP &
  93. TAIL=$!
  94. trap 'kill -9 $TAIL >/dev/null 2>&1' 0 1 2 3 5 9 15
  95. wait $XFER
  96. #    sleep 2 to allow tail to complete output
  97. sleep 2
  98.