[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