src/parasol/paraNodeStart/paraNodeStart.c 1.15
1.15 2009/11/21 01:07:58 markd
added option to allow setting arbitrary environment variable for jobs
Index: src/parasol/paraNodeStart/paraNodeStart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/parasol/paraNodeStart/paraNodeStart.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -b -B -U 4 -r1.14 -r1.15
--- src/parasol/paraNodeStart/paraNodeStart.c 15 May 2008 00:42:27 -0000 1.14
+++ src/parasol/paraNodeStart/paraNodeStart.c 21 Nov 2009 01:07:58 -0000 1.15
@@ -12,8 +12,9 @@
{"hub", OPTION_STRING},
{"umask", OPTION_INT},
{"userPath", OPTION_STRING},
{"sysPath", OPTION_STRING},
+ {"env", OPTION_STRING|OPTION_MULTI},
{"randomDelay", OPTION_INT},
{"exe", OPTION_STRING},
{"rsh", OPTION_STRING},
{NULL, 0}
@@ -40,8 +41,9 @@
" -umask=000 Set umask to run under - default 002.\n"
" -randomDelay=N Set random start delay in milliseconds - default 5000.\n"
" -userPath=bin:bin/i386 User dirs to add to path.\n"
" -sysPath=/sbin:/local/bin System dirs to add to path.\n"
+ " -env=name=value - add environment variable to jobs. Maybe repeated.\n"
" -hub=machineHostingParaHub Nodes will ignore messages from elsewhere.\n"
" -rsh=/path/to/rsh/like/command.\n"
, version
);
@@ -54,8 +56,17 @@
if (val != NULL)
dyStringPrintf(dy, " %s=%s", option, val);
}
+void carryMultiOption(char *option, struct dyString *dy)
+/* Carry multi-valued option from our command line to paraNode's. Do
+ * naive quoting */
+{
+struct slName *val;
+for (val = optionMultiVal(option, NULL); val != NULL; val = val->next)
+ dyStringPrintf(dy, " %s='%s'", option, val->name);
+}
+
void paraNodeStart(char *machineList)
/* Start node servers on all machines in list. */
{
char *exe = optionVal("exe", "paraNode");
@@ -78,8 +89,9 @@
carryOption("hub", dy);
carryOption("umask", dy);
carryOption("sysPath", dy);
carryOption("userPath", dy);
+ carryMultiOption("env", dy);
carryOption("randomDelay", dy);
printf("%s\n", dy->string);
system(dy->string);
}