Пример #1
0
int main(int argc, char **argv)
{
    enum arg_index ret;
    int fd;

    while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) {
        switch (ret) {
        case ARG_help:
            display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args);
            return 0;
        case ARG_version:
            printf("%s", version_text);
            return 0;

        case ARG_EXTRA:
            fd = open(argarg, O_RDONLY | O_CREAT, 0777);
            if (fd == -1) {
                perror(argarg);
                return 0;
            }
            close(fd);
            break;

        case ARG_ERR:
        default:
            return 0;
        }
    }

    return 0;
}
Пример #2
0
int main(int argc, char **argv) {
    enum arg_index ret;

    while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) {
        switch (ret) {
        case ARG_help:
            display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args);
            return 0;
        case ARG_version:
            printf("%s", version_text);
            return 0;

        case ARG_EXTRA:
            ret = mkdir(argarg, 0777);
            if (ret) {
                perror(argarg);
                return 0;
            }
            break;

        case ARG_ERR:
        default:
            return 0;
        }
    }

    return 0;
}
Пример #3
0
/* Help Menu */
void display_help_screen(Menu* help_menu) {
    int win_width, win_height;

    SDL_GetWindowSize(help_menu->window.win, &win_width, &win_height);

    display_help_text(help_menu, win_width, win_height);
    display_back_button(help_menu, win_width, win_height);
}
Пример #4
0
void parse_args(int argc, char **argv, struct arg_state *s)
{
    enum arg_list ret;

    while ((ret = arg_parser(argc, argv, cmips_args)) != ARG_DONE) {
        switch (ret) {
        case ARG_help:
            display_help_text(argv[0], cmips_args);
            exit(0);
            break;
        case ARG_version:
            printf("%s", version_text);
            exit(0);
            break;
        case ARG_quiet:
            s->quiet = 1;
            break;
        case ARG_run:
            s->run = 1;
            break;
        case ARG_noinput:
            s->noinput = 1;
            break;
        case ARG_script:
            s->cmd_script = argarg;
            break;
        case ARG_EXTRA:
            if (emulator_load_from_file(&cmips_emu, argarg)) {
                printf("Error assembling file.\n");
                s->quiet = 1;
                s->noinput = 1;
                return ;
            }
            break;
        default:
        case ARG_ERR:
            /* Error message already printed by getopt_long() */
            exit(0);
            break;
        }
    }

    return ;
}
Пример #5
0
int main(int argc, char **argv) {
  bool show_all = false;
  int dirs = 0, i;
  const char *dirarray[DIRMAX] = { NULL };

  enum arg_index ret;

  while ((ret = arg_parser(argc, argv, ls_args)) != ARG_DONE) {
    switch (ret) {
    case ARG_help:
      display_help_text(argv[0], usage_str, desc_str, ls_args);
      return 0;
    case ARG_all:
      show_all = true;
      break;
    case ARG_EXTRA:
      if (dirs < sizeof(dirarray)) {
          dirarray[dirs++] = argarg;
      } else {
          fprintf(stderr, "%s: To many directories given to ls\n", argv[0]);
          return 1;
      }
      break;
    default:
      return 0;
    }
  }

  if (dirs == 0) {
    dirarray[dirs++] = "./";
  }

  for (i = 0; i < dirs; i++) {
    DIR *directory = opendir(dirarray[i]);

    if (directory == NULL) {
      perror(*argv);
      return 1;
    }

    list_items(directory, show_all);
    printf("\n");
  }
}
Пример #6
0
int main(int argc, char **argv)
{
    const char *iface = NULL;
    enum arg_index ret;
    struct ifreq ifreq;
    char *cmd = NULL, *cmd_arg = NULL;

    prog = argv[0];

    while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) {
        switch (ret) {
        case ARG_help:
            display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args);
            return 0;
        case ARG_version:
            printf("%s", version_text);
            return 0;

        case ARG_EXTRA:
            if (!iface) {
                iface = argarg;
            } else if (!cmd) {
                cmd = argarg;
            } else if (!cmd_arg) {
                cmd_arg = argarg;
            } else {
                printf("%s: Too many arguments\n", argv[0]);
                return 0;
            }

            break;

        case ARG_ERR:
        default:
            return 0;
        }
    }

    netdev_fd = open(NETDEV, O_RDONLY);
    if (netdev_fd == -1) {
        perror(NETDEV);
        return 1;
    }

    if (iface) {
        strncpy(ifreq.ifr_name, iface, IFNAMSIZ);
        ret = ioctl(netdev_fd, SIOCGIFINDEX, &ifreq);

        if (ifreq.ifr_index == -1 || ret) {
            printf("Unable to access %s: %s\n", iface, strerror(errno));
            return 1;
        }

        if (cmd)
            execute_cmd(&ifreq, cmd, cmd_arg);
        else
            display_iface(&ifreq);
    } else {
        int i = 0;
        int err = 0;
        int found = 0;

        for (; !err; i++) {
            ifreq.ifr_index = i;
            err = ioctl(netdev_fd, SIOCGIFNAME, &ifreq);
            if (!err) {
                found = 1;
                display_iface(&ifreq);
            }
        }

        if (!found)
            printf("No Network Interfaces found\n");
    }

    close(netdev_fd);

    return 0;
}