[LON-CAPA-cvs] cvs: loncom / lonManage

foxr lon-capa-cvs@mail.lon-capa.org
Tue, 12 Aug 2003 10:40:44 -0000


foxr		Tue Aug 12 06:40:44 2003 EDT

  Modified files:              
    /loncom	lonManage 
  Log:
  Get switch parsing right.
  
  
Index: loncom/lonManage
diff -u loncom/lonManage:1.3 loncom/lonManage:1.4
--- loncom/lonManage:1.3	Tue Aug 12 06:22:35 2003
+++ loncom/lonManage	Tue Aug 12 06:40:44 2003
@@ -3,9 +3,9 @@
 #
 #  lonManage supports remote management of nodes in a LonCAPA cluster.
 #
-#  $Id: lonManage,v 1.3 2003/08/12 10:22:35 foxr Exp $
+#  $Id: lonManage,v 1.4 2003/08/12 10:40:44 foxr Exp $
 #
-# $Id: lonManage,v 1.3 2003/08/12 10:22:35 foxr Exp $
+# $Id: lonManage,v 1.4 2003/08/12 10:40:44 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -50,6 +50,9 @@
 #    not the IP address of the host.
 #
 #  $Log: lonManage,v $
+#  Revision 1.4  2003/08/12 10:40:44  foxr
+#  Get switch parsing right.
+#
 #  Revision 1.3  2003/08/12 10:22:35  foxr
 #  Put in parameter parsing infrastructure
 #
@@ -95,22 +98,61 @@
 #
 #   This function does not validation of the parameters of push and
 #   reinit.
+#
+#   returns a list.  The first element of the list is the operation name
+#   (e.g. reinit or push).  The second element is the switch parameter.
+#   for push, this is the table name, for reinit, this is the process name.
+#   Additional elements of the list are the command argument.  The count of
+#   command arguments is validated, but not their semantics.
+#
 #   returns an empty list if the parse fails.
 #
 
 sub ParseArgs {
-    return ();
+    my $pushing   = '';
+    my $reiniting = '';
+    if(!GetOptions('push=s'    => \$pushing,
+	           'reinit=s'  => \$reinitting)) {
+	return ();
+    }
+
+    #  Require exactly   one of --push and --reinit
+
+    my $command = '';
+    my $commandarg = '';
+    if($pushing ne '') {
+	if($command ne '') {
+	    return ();
+	} else {
+	    $command    = 'push';
+	    $commandarg = $pushing;
+	}
+    }
+    if ($reinitting ne '') {
+	if($command ne '') {
+	    return ();
+	} else {
+	    $command    = 'reinit';
+	    $commandarg = $reinitting; 
+	}
+    }
+
+    return ($command, $commandarg);
 }
 
 #
 #    If command parsing failed, then print usage:
 
-@status = ParseArgs;=
+@status = ParseArgs;
 $nparam   = @status;
 
 if($nparam == 0) {
     Usage;
+    exit -1;
 }
+print "Will do a $status[0] : $status[1]\n";
+
+exit 0;
 
 =head1 NAME
     lonManage - Command line utility for remote management of lonCAPA