diff --git a/src/runtime/ompi_rte_parse_daemon_cmd_line.c b/src/runtime/ompi_rte_parse_daemon_cmd_line.c new file mode 100644 index 0000000000..1350569bee --- /dev/null +++ b/src/runtime/ompi_rte_parse_daemon_cmd_line.c @@ -0,0 +1,96 @@ +/* + * $HEADER$ + */ + +/** + * @file + * + * Parse command line options for the Open MPI Run Time Environment + */ +#include "ompi_config.h" + +#include + +#include "util/output.h" +#include "util/cmd_line.h" +#include "util/sys_info.h" +#include "util/proc_info.h" + +#include "runtime/runtime.h" + +void ompi_rte_parse_daemon_cmd_line(ompi_cmd_line_t *cmd_line) +{ + + /* see if I'm a probe */ + if (ompi_cmd_line_is_taken(cmd_line, "probe")) { + ompi_universe_info.probe = true; + } else { + ompi_universe_info.probe = false; + } + + /* should I start a name server replica? */ + if (ompi_cmd_line_is_taken(cmd_line, "nameserver")) { + ompi_universe_info.ns_replica = true; + } else { + ompi_universe_info.ns_replica = false; + } + + /* should I start a registry replica? */ + if (ompi_cmd_line_is_taken(cmd_line, "registry")) { + ompi_universe_info.gpr_replica = true; + } else { + ompi_universe_info.gpr_replica = false; + } + + /* get desired universe scope, if specified */ + if (ompi_cmd_line_is_taken(cmd_line, "scope")) { + if (NULL == ompi_cmd_line_get_param(cmd_line, "scope", 0, 0)) { + fprintf(stderr, "error retrieving universe scope - please report error to bugs@open-mpi.org\n"); + exit(1); + } + ompi_universe_info.scope = strdup(ompi_cmd_line_get_param(cmd_line, "scope", 0, 0)); + } + + /* find out if persistent */ + if (ompi_cmd_line_is_taken(cmd_line, "persistent")) { + ompi_universe_info.persistence = true; + } else { + ompi_universe_info.persistence = false; + } + + /* find out if silent */ + if (ompi_cmd_line_is_taken(cmd_line, "silent")) { + ompi_universe_info.silent_mode = true; + } else { + ompi_universe_info.silent_mode = false; + } + + /* find out if web interface is desired */ + if (ompi_cmd_line_is_taken(cmd_line, "webserver")) { + ompi_universe_info.web_server = true; + } else { + ompi_universe_info.web_server = false; + } + + /* find out if script is to be executed */ + if (ompi_cmd_line_is_taken(cmd_line, "script")) { + if (NULL == ompi_cmd_line_get_param(cmd_line, "script", 0, 0)) { + fprintf(stderr, "error retrieving script file name - please report error to bugs@open-mpi.org\n"); + exit(1); + } + ompi_universe_info.scriptfile = strdup(ompi_cmd_line_get_param(cmd_line, "script", 0, 0)); + } else { + ompi_universe_info.scriptfile = NULL; + } + + /* Find out if hostfile specified */ + if (ompi_cmd_line_is_taken(cmd_line, "hostfile")) { + if (NULL == ompi_cmd_line_get_param(cmd_line, "hostfile", 0, 0)) { + fprintf(stderr, "error retrieving host file name - please report error to bugs@open-mpi.org\n"); + exit(1); + } + ompi_universe_info.hostfile = strdup(ompi_cmd_line_get_param(cmd_line, "hostfile", 0, 0)); + } else { + ompi_universe_info.hostfile = NULL; + } +}