/* Parse the command line, looking for options */ static void surf_config_cmd_line(int *argc, char **argv) { int i, j; char *opt; for (i = 1; i < *argc; i++) { int remove_it = 0; if (!strncmp(argv[i], "--cfg=", strlen("--cfg="))) { opt = strchr(argv[i], '='); opt++; xbt_cfg_set_parse(_surf_cfg_set, opt); XBT_DEBUG("Did apply '%s' as config setting", opt); remove_it = 1; } else if (!strncmp(argv[i], "--cfg-help", strlen("--cfg-help") + 1) || !strncmp(argv[i], "--help", strlen("--help") + 1)) { printf ("Description of the configuration accepted by this simulator:\n"); xbt_cfg_help(_surf_cfg_set); printf ("\nYou can also use --help-models to see the details of all models known by this simulator.\n"); #ifdef HAVE_TRACING printf ("\nYou can also use --help-tracing to see the details of all tracing options known by this simulator.\n"); #endif exit(0); } else if (!strncmp (argv[i], "--help-models", strlen("--help-models") + 1)) { model_help("workstation", surf_workstation_model_description); model_help("CPU", surf_cpu_model_description); model_help("network", surf_network_model_description); exit(0); #ifdef HAVE_TRACING }else if (!strncmp (argv[i], "--help-tracing", strlen("--help-tracing") + 1)) { TRACE_help (1); exit(0); #endif } if (remove_it) { /*remove this from argv */ for (j = i + 1; j < *argc; j++) { argv[j - 1] = argv[j]; } argv[j - 1] = NULL; (*argc)--; i--; /* compensate effect of next loop incrementation */ } } }
/* Parse the command line, looking for options */ static void sg_config_cmd_line(int *argc, char **argv) { int shall_exit = 0; int i, j; char *opt; for (j = i = 1; i < *argc; i++) { if (!strncmp(argv[i], "--cfg=", strlen("--cfg="))) { opt = strchr(argv[i], '='); opt++; xbt_cfg_set_parse(_sg_cfg_set, opt); XBT_DEBUG("Did apply '%s' as config setting", opt); } else if (!strcmp(argv[i], "--version")) { printf("%s\n", SIMGRID_VERSION_STRING); shall_exit = 1; } else if (!strcmp(argv[i], "--cfg-help") || !strcmp(argv[i], "--help")) { printf ("Description of the configuration accepted by this simulator:\n"); xbt_cfg_help(_sg_cfg_set); printf( "\n" "Each of these configurations can be used by adding\n" " --cfg=<option name>:<option value>\n" "to the command line.\n" "\n" "You can also use --help-models to see the details of all models known by this simulator.\n" "\n" "You can also use --help-tracing to see the details of all tracing options known by this simulator.\n" "\n" "You can also use --help-logs and --help-log-categories to see the details of logging output.\n" "\n" "You can also use --version to get SimGrid version information.\n" "\n" ); shall_exit = 1; } else if (!strcmp(argv[i], "--help-models")) { int k; model_help("host", surf_host_model_description); printf("\n"); model_help("CPU", surf_cpu_model_description); printf("\n"); model_help("network", surf_network_model_description); printf("\nLong description of all optimization levels accepted by the models of this simulator:\n"); for (k = 0; surf_optimization_mode_description[k].name; k++) printf(" %s: %s\n", surf_optimization_mode_description[k].name, surf_optimization_mode_description[k].description); printf("Both network and CPU models have 'Lazy' as default optimization level\n\n"); shall_exit = 1; } else if (!strcmp(argv[i], "--help-tracing")) { TRACE_help (1); shall_exit = 1; } else { argv[j++] = argv[i]; } } if (j < *argc) { argv[j] = NULL; *argc = j; } if (shall_exit) sg_cfg_exit_early(); }