home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / usr / lib / hpnp / cfg / getname / getname~
Text File  |  1998-08-19  |  7KB  |  198 lines

  1. #!/bin/ksh
  2. #ident    "@(#)getname    1.2"
  3. #        copyright    "%c%"
  4. #
  5. # (c)Copyright Hewlett-Packard Company 1991.  All Rights Reserved.
  6. # (c)Copyright 1983 Regents of the University of California
  7. # (c)Copyright 1988, 1989 by Carnegie Mellon University
  8. #                          RESTRICTED RIGHTS LEGEND
  9. # Use, duplication, or disclosure by the U.S. Government is subject to
  10. # restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
  11. # Technical Data and Computer Software clause in DFARS 252.227-7013.
  12. #
  13. #                          Hewlett-Packard Company
  14. #                          3000 Hanover Street
  15. #                          Palo Alto, CA 94304 U.S.A.
  16. #
  17. #  Call this program as "getname option-name default-peripheral-name"
  18.  
  19. OPTION=$1
  20. DEFAULT=$2
  21.  
  22. while [ 0 ] 
  23. do
  24.   echo ""
  25.   if [ -n "$DEFAULT" ]
  26.   then
  27.     if [ "$OPTION" = "option4" -o "$OPTION" = "option5" ]
  28.     then
  29.       echo "Enter the network peripheral name or IP address (default=$DEFAULT): $NL"
  30.     else
  31.       echo "Enter the network peripheral name (default=$DEFAULT): $NL"
  32.     fi
  33.   else
  34.     if [ "$OPTION" = "option4" -o "$OPTION" = "option5" ]
  35.     then
  36.       echo "Enter the network peripheral name or IP address: $NL"
  37.     else
  38.       echo "Enter the network peripheral name: $NL"
  39.     fi
  40.   fi
  41.   read -r PNAME
  42.   if [ "$PNAME" = "q" ]
  43.   then
  44.     exit 1
  45.   fi
  46.   if [ -z "$PNAME" ]
  47.   then
  48.     PNAME="$DEFAULT"
  49.   fi
  50.   if [ -z "$PNAME" ]
  51.   then
  52.     continue
  53.   fi
  54.   if [ "$PNAME" = "?" ]
  55.   then
  56.       case $OPTION in
  57.     option2)
  58.           echo ""
  59.           echo "The peripheral name is used by various services to contact the"
  60.           echo "network peripheral.  The peripheral name can be a short name"
  61.           echo "like \"picasso\" or a domain name like \"picasso.light.com\"."
  62.           echo "The domain is not required for the HP network peripheral to"
  63.           echo "operate in a domain naming environment since it does not make"
  64.           echo "any DNS (Domain Name System) lookups."
  65.           echo ""
  66.           echo "The name must begin with a letter, and must be terminated with"
  67.           echo "either a letter or a number.  Other characters in the name are"
  68.           echo "limited to letters, numbers, periods, and hyphens.  The name"
  69.       echo "is limited to 32 characters."
  70.       ;;
  71.     option4)
  72.       echo ""
  73.       echo "The peripheral named will be sent five \"echo\" packets by the"
  74.       echo "ping utility.  This is a low level network test that tests if"
  75.       echo "the peripheral is responding to its IP address."
  76.       echo ""
  77.       echo "If this test passes, the next step is to test the network"
  78.       echo "peripheral operation by sending a file to the peripheral."
  79.       echo ""
  80.       echo "If this test fails, the problem must be diagnosed before further"
  81.       echo "tests are made."
  82.       ;;
  83.     option5)
  84.       echo ""
  85.       echo "The peripheral named will have a file sent to it over the"
  86.       echo "network.  The spooler is not involved in the file transfer."
  87.       echo "Sending the peripheral a file without involving the spooler"
  88.       echo "shows that the system is working so far and gives us confidence"
  89.       echo "that everything should work after configuring the spooler."
  90.       echo ""
  91.       echo "If this test passes, the next step is to configure the spooler"
  92.       echo "to transfer printjobs over the network."
  93.       echo ""
  94.       echo "If this test fails, the problem must be diagnosed before"
  95.       echo "configuring the spooler."
  96.       ;;
  97.     option6hp)
  98.       echo ""
  99.       echo "The lp spooler destination name can be different from the network"
  100.       echo "peripheral name.  The lp spooler destination name is the name used"
  101.       echo "with the -d option of the \"lp\" command.  The network peripheral"
  102.       echo "name is the name entered in /etc/hosts, NIS (Network Information"
  103.       echo "Service), or DNS (Domain Name System.)"
  104.       ;;
  105.     option6sun)
  106.       echo ""
  107.       echo "The lpr printer name can be different from the network peripheral"
  108.       echo "name.  The lpr printer name is the name used with the -P option"
  109.       echo "of the \"lpr\" command.  The network peripheral name is the"
  110.       echo "name entered in /etc/hosts, NIS (Network Information Service),"
  111.       echo "or DNS (Domain Name System.)"
  112.       ;;
  113.     option7)
  114.       echo ""
  115.       echo "The $BOOTPTAB entry for this peripheral will be removed."
  116.       echo "If there is a configuration file, it is removed also."
  117.       ;;
  118.       esac
  119.       echo ""
  120.       $QUITHELP
  121.       continue
  122.   fi
  123.  
  124.   case $OPTION in
  125.     option2)
  126.       #
  127.       # Verify that the name fits the requirements.  Some versions of
  128.       # /etc/bootpd do not allow the name to start with a digit although
  129.       # it is legal.  The network peripheral only stores 32 characters 
  130.       # for the name.  Arguably, we could allow a longer name here, but it
  131.       # would be truncated at the peripheral anyway.
  132.       #
  133.       echo $PNAME | grep '^[a-zA-Z][a-zA-Z0-9\.-]*[a-zA-Z0-9]$' > /dev/null
  134.       FAILED=$?
  135.       if [ $FAILED -eq 0 ]
  136.       then
  137.         LENGTH=`expr $PNAME : '.*'`
  138.         if [ $LENGTH -gt 32 ]
  139.         then
  140.       FAILED=1
  141.         fi
  142.       fi
  143.       if [ $FAILED -ne 0 ]
  144.       then
  145.         echo ""
  146.         echo "$PNAME is an invalid name."
  147.         echo ""
  148.         echo "The names must begin with a letter, and must be terminated with"
  149.         echo "either a letter or a number.  Other characters in the name are"
  150.         echo "limited to letters, numbers, periods, and hyphens.  The name"
  151.         echo "is limited to 32 characters."
  152.       else
  153.         break
  154.       fi
  155.       ;;
  156.     option4|option5)
  157.       LOOKUPPNAME="`gethostaddr $PNAME`"
  158.       if [ -z "$LOOKUPPNAME" ]
  159.       then
  160.     echo ""
  161.     echo "$PNAME: unknown peripheral"
  162.     echo ""
  163.     echo "The IP address was not found for this name.  Enter the name in"
  164.     echo "/etc/hosts, NIS (Network Information Service), or DNS (Domain"
  165.     echo "Name System) and try this test again.  An IP address can be given"
  166.     echo "at the prompt for this test instead of a name although the name"
  167.     echo "must still be entered /etc/hosts, NIS, or DNS before configuring"
  168.     echo "the spooler."
  169.     echo ""
  170.     $QUITHELP
  171.       else
  172.         break
  173.       fi
  174.       ;;
  175.     option6hp|option6sun)
  176.       LOOKUPPNAME="`gethostaddr $PNAME`"
  177.       if [ -z "$LOOKUPPNAME" ]
  178.       then
  179.     echo ""
  180.     echo "*****************************************************************"
  181.     echo "$PNAME: unknown peripheral"
  182.     echo ""
  183.     echo "The IP address was not found for this name.  Enter the name in"
  184.     echo "/etc/hosts, NIS (Network Information Service), or DNS (Domain"
  185.     echo "Name System) before attempting to use this peripheral through"
  186.     echo "the spooler."
  187.     echo "*****************************************************************"
  188.       fi
  189.       break
  190.       ;;
  191.     *) break ;;
  192.   esac
  193. done
  194.  
  195. echo $PNAME > "$TMP/NAME"
  196. exit 0
  197.