Ejemplo n.º 1
0
/* 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 */
    }
  }
}
Ejemplo n.º 2
0
/* 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();
}