Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/ypserv/ypinit Add a -l argument to ypinit that allo...



details:   https://anonhg.NetBSD.org/src/rev/db622c218959
branches:  trunk
changeset: 513467:db622c218959
user:      garbled <garbled%NetBSD.org@localhost>
date:      Wed Aug 01 07:01:03 2001 +0000

description:
Add a -l argument to ypinit that allows adding servers in the format
server1,server2,server3 on the command line.  This allows the user to
optionally avoid the interactive mode of ypinit.  If the -l flag is not
supplied, the old behavior is retained.

This allows users to do things like rsh out creation of YP clients, and
sushi to generate yp clients/servers/slaves.

diffstat:

 usr.sbin/ypserv/ypinit/ypinit.8  |   11 +++-
 usr.sbin/ypserv/ypinit/ypinit.sh |  112 ++++++++++++++++++++++----------------
 2 files changed, 75 insertions(+), 48 deletions(-)

diffs (208 lines):

diff -r 3923d4d8a510 -r db622c218959 usr.sbin/ypserv/ypinit/ypinit.8
--- a/usr.sbin/ypserv/ypinit/ypinit.8   Wed Aug 01 06:59:17 2001 +0000
+++ b/usr.sbin/ypserv/ypinit/ypinit.8   Wed Aug 01 07:01:03 2001 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: ypinit.8,v 1.7 1999/03/07 11:58:26 mycroft Exp $
+.\"    $NetBSD: ypinit.8,v 1.8 2001/08/01 07:01:03 garbled Exp $
 .\"
 .\" Copyright (c) 1997 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -34,7 +34,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd January 4, 1997
+.Dd July 31, 2001
 .Dt YPINIT 8
 .Os
 .Sh NAME
@@ -44,13 +44,16 @@
 .Nm ""
 .Fl c
 .Op Ar domainname
+.Op Fl l Ar server1,...,serverN
 .Nm ""
 .Fl m
 .Op Ar domainname
+.Op Fl l Ar server1,...,serverN
 .Nm ""
 .Fl s
 .Ar master_server
 .Op Ar domainname
+.Op Fl l Ar server1,...,serverN
 .Sh DESCRIPTION
 .Nm
 initialises the files and directories that are required for a
@@ -74,6 +77,10 @@
 to contain a list of ypservers for
 .Xr ypbind 8
 to connect to.
+.It Fl l Ar server1,...,serverN
+Set the list of client servers from the command line rather than
+prompting for them interactively.  The format is a comma separated list
+of server names with no spaces.
 .It Fl m
 Create a master
 .Tn YP
diff -r 3923d4d8a510 -r db622c218959 usr.sbin/ypserv/ypinit/ypinit.sh
--- a/usr.sbin/ypserv/ypinit/ypinit.sh  Wed Aug 01 06:59:17 2001 +0000
+++ b/usr.sbin/ypserv/ypinit/ypinit.sh  Wed Aug 01 07:01:03 2001 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#      $NetBSD: ypinit.sh,v 1.9 2001/06/18 11:21:54 lukem Exp $
+#      $NetBSD: ypinit.sh,v 1.10 2001/08/01 07:01:03 garbled Exp $
 #
 # ypinit.sh - setup a master or slave YP server
 #
@@ -30,7 +30,7 @@
        exit 1
 fi
 
-args=`getopt cms: $*`
+args=`getopt cl:ms: $*`
 if [ $? -eq 0 ]; then
        set -- $args
        for i; do
@@ -49,6 +49,12 @@
                        shift
                        shift
                        ;;
+               "-l")
+                       noninteractive=yes
+                       serverlist=${2}
+                       shift
+                       shift
+                       ;;
                "--")
                        shift
                        break
@@ -66,9 +72,9 @@
 
 if [ -z ${servertype} ]; then
        cat 1>&2 << __usage 
-usage:         ${progname} -c [domainname]
-       ${progname} -m [domainname]
-       ${progname} -s master_server [domainname]
+usage:         ${progname} -c [domainname] [-l server1,...,serverN]
+       ${progname} -m [domainname] [-l server1,...,serverN]
+       ${progname} -s master_server [domainname] [-l server1,...,serverN]
 
 The \`-c' flag sets up a YP client, the \`-m' flag builds a master YP
 server, and the \`-s' flag builds a slave YP server.  When building a
@@ -129,60 +135,74 @@
        exit 1
 fi
 
-cat << __client_setup
+if [ -z "${noninteractive}" ]; then
+       cat << __client_setup
 A YP client needs a list of YP servers to bind to.
 Whilst ypbind supports -broadcast, its use is not recommended.
 __client_setup
 
-done=
-while [ -z "${done}" ]; do
-       > ${tmpfile}
-       cat <<__list_of_servers
+       done=
+       while [ -z "${done}" ]; do
+               > ${tmpfile}
+               cat <<__list_of_servers
 
 Please enter a list of YP servers, in order of preference.
 When finished, press RETURN on a blank line or enter EOF.
 
 __list_of_servers
 
+               if [ "${servertype}" != "client" ]; then
+                       echo ${host} >> ${tmpfile}
+                       echo "  next host: ${host}";
+               fi
+               echo -n "       next host: ";
+
+               while read nextserver ; test -n "${nextserver}"
+               do
+                       echo ${nextserver} >> ${tmpfile}
+                       echo -n "       next host: ";
+               done
+
+               if [ -s ${tmpfile} ]; then
+                       echo ""
+                       echo "The current servers are:"
+                       echo ""
+                       cat ${tmpfile}
+                       echo ""
+                       echo -n "Is this correct? [y/n: n] "
+                       read DONE
+                       case ${DONE} in
+                       y*|Y*)
+                               done=yes
+                               ;;
+                       esac
+               else
+                       echo    ""
+                       echo    "You have not supplied any servers."
+               fi
+               if [ -z "${done}" ]; then
+                       echo -n "Do you wish to abort? [y/n: n] "
+                       read ABORT
+                       case ${ABORT} in
+                       y*|Y*)
+                               exit 0
+                               ;;
+                       esac
+               fi
+       done
+else # interacive
        if [ "${servertype}" != "client" ]; then
                echo ${host} >> ${tmpfile}
-               echo "  next host: ${host}";
        fi
-       echo -n "       next host: ";
-
-       while read nextserver ; test -n "${nextserver}"
-       do
-               echo ${nextserver} >> ${tmpfile}
-               echo -n "       next host: ";
-       done
-
-       if [ -s ${tmpfile} ]; then
-               echo ""
-               echo "The current servers are:"
-               echo ""
-               cat ${tmpfile}
-               echo ""
-               echo -n "Is this correct? [y/n: n] "
-               read DONE
-               case ${DONE} in
-               y*|Y*)
-                       done=yes
-                       ;;
-               esac
-       else
-               echo    ""
-               echo    "You have not supplied any servers."
-       fi
-       if [ -z "${done}" ]; then
-               echo -n "Do you wish to abort? [y/n: n] "
-               read ABORT
-               case ${ABORT} in
-               y*|Y*)
-                       exit 0
-                       ;;
-               esac
-       fi
-done
+       echo "${serverlist}" | sed -e 's/,/\
+/g' >> ${tmpfile}
+#the above newline is required
+       echo ""
+       echo "The current servers are:"
+       echo ""
+       cat ${tmpfile}
+       echo ""
+fi # interactive
 
 if [ -s ${tmpfile} ]; then
        ${INSTALL} -c -m 0444 ${tmpfile} ${binding_dir}/${domain}.ypservers



Home | Main Index | Thread Index | Old Index