[comp.sources.misc] v06i051: Uupoll

allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) (03/07/89)

Posting-number: Volume 6, Issue 51
Submitted-by: Michael M. Levin <srhqla!levin@uunet.UU.NET>
Archive-name: uupoll

[I'm not certain I see the point in this, given "uucico -r1 -ssys".  ++bsa]

Uupoll is a utility which allows the user to force the polling of a
remote system.  It has one option which allows the user to force the
poll to actually start, rather than waiting for cron's next pass.  It
is a Bourne shell-script, and is intended for use in HDB uucp systems.
It is pretty well documented, and can easily be tailored to a specific
system's unique requirements.  It follows the general style of other
scripts pertaining to the uucp system, and follows (as much as I can
tell) the same general approach as the stock poll handler for HDB (the
one called uudemon.poll), which has to be started by cron.


#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	Uupoll
# This archive created: Wed Feb 15 10:17:34 1989
export PATH; PATH=/bin:$PATH
if test -f 'Uupoll'
then
	echo shar: will not over-write existing file "'Uupoll'"
else
cat << \SHAR_EOF > 'Uupoll'
: # 	Uupoll (1.0)
: #
: #	Bourne shell script to force polling of a remote system
: #
: #  Written by: 
: # 	Michael M. Levin - Feb, 1988
: #
: #				Copyright (c) 1988 
: #				 Michael M. Levin
: #	
: #			(levin@srhqla.UUCP, levin@magnus.UUCP)
: #	
: #	
: #	This script is intended for Public distribution. It shall
: #	not be distributed in any manner whatsoever, nor packaged for 
: #	enhancement to a commercial product in any form, for profit. 
: #	This agreement also stipulates that the users of this script 
: #	will not remove the names of the origional Author nor this
: #	copyright notice from this script. 
: #
: #  Revision: Version 1.0 Feb 1988 
: #
: #	Developed for System V using HoneyDanBer uucp. 
: #	(AT&T Basic Networking Utilities)
: #
: # 	Last Updated: 	Sat Feb 27 17:35:00 PST 1988
: #
: #  Usage:
: #
: # 	This shell must be run by either super-user or uucp.
: #	It causes a poll request to be entered (or touched, if
: #	one already exists) for the specified system.  Even if
: #	the file permissions are changed to allow execution by
: #	other users, the shell will abort itself.
: #	If the shell is started with only a system name, it simply
: #	creates an entry which will be handled the next time that
: #	uusched is run.  To also cause uusched to start up, start
: #	it with a '-n' (NOW) option ahead of the system name.
: #	For example:
: #
: #		Create entry only:	Uupoll sysname
: #		Start uusched also:	Uupoll -n sysname

PATH=/bin:/usr/bin:/etc:/usr/lib/uucp
export PATH
SYS=/usr/lib/uucp/Systems	# Full pathname to Systems file(s)
SPOOL=/usr/spool/uucp		# Mail system spool directory
UUCP=uucp			# Local uid name for uucp (usually uucp)
MAIL=mail			# Local gid name for mail (usually mail)
ROOT=root			# Local uid name for root (usually root)
NOW=NO
USAGE="\tusage: ${0} [-n] sysname"
umask 022
set +e

: #	Determine that we are either uucp or root:

	if id|cut -f2 -d\(|cut -f1 -d\)|grep "^${UUCP}$" > /dev/null
	then
		continue
	elif id|cut -f2 -d\(|cut -f1 -d\)|grep "^${ROOT}$" > /dev/null
	then
		continue
	else
		echo "${0}: you must be uucp to run this.  FAILED"
		exit 2
	fi


: #	Verify that a system name has been passed to us:

	set -- `getopt n $*`
	if [ $? != 0 ]
	then
		echo $USAGE
		exit 2
	fi
	for i in $*
	do
		case $i in
		-n)		NOW=YES; shift;; # Is 'NOW' flag set??
		--)		shift; break;;
		esac
	done
	if [ $# != 1 ]
	then
		echo "${0}: you must specify system name.  FAILED"
		exit 2
	fi


: #	Make sure system name exists in our local Systems file:

	if uuname | grep "^${1}$" > /dev/null
	then
		site=$1
		continue
	else
		echo "${0}: '"$1"' is not a valid system name.  FAILED"
		exit 2
	fi


: #	If a spool directory doesn't exist for this system, create one.

	if [ ! -d $SPOOL/$site ]
	then
		mkdir $SPOOL/$site
		chown $UUCP $SPOOL/$site
		chgrp $MAIL $SPOOL/$site
	fi


: #	Create the poll entry in the specified system's spool directory.

	j=`expr $site : '\(.\{1,7\}\)'`
	touch $SPOOL/$site/C.${j}n0000
	chown $UUCP $SPOOL/$site/C.${j}n0000
	chgrp $MAIL $SPOOL/$site/C.${j}n0000

: #	If NOW option selected, start the scheduler.

	if [ $NOW = YES ]
	then
		touch $SPOOL/.Status/$site
		rm $SPOOL/.Status/$site
		nohup uusched > /dev/null &
		nohup uuxqt > /dev/null &
	fi
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0



-- 
+----+         P L E A S E    R E S P O N D   T O:     +------+-*-*-*-*-*-*-*-*
| Mike Levin, Silent Radio HeadQuarters, Los Angeles (srhqla) | No room for a *
| Path:{aeras|csun|pacbell|pyramid|telebit}!srhqla!levin      |'snappy remark'*
+-------------------------------------------------------------+-*-*-*-*-*-*-*-*