Exemple #1
0
int main(int argc, char *argv[])
{
    int num;
    struct control *c;
    struct control_dependency *cd;
    struct control_source *cs;

    if ((num = parse_params(argc, argv)) < 0) {
        fprintf(stderr, "Usage: pkgcontrol [COMMAND] FILES...\n");
        fprintf(stderr, "Commands:\n");
        fprintf(stderr, "    -n: Dump package name\n");
        fprintf(stderr, "    -v: Dump package version\n");
        fprintf(stderr, "    -r: Dump package runtime dependencies\n");
        fprintf(stderr, "    -b: Dump package build dependencies\n");
        fprintf(stderr, "    -s: Dump package sources\n");
        return EXIT_FAILURE;
    }

    for (; num < argc; num++) {
        if (control_parse(argv[num], &c) != 0) {
            fprintf(stderr, "Error parsing '%s'\n", argv[num]);
            return EXIT_FAILURE;
        }

        switch (field) {
            case FIELD_NAME:
                puts(c->package);
                break;
            case FIELD_VERSION:
                puts(c->version);
                break;
            case FIELD_DEP_RUN:
                for (cd = c->run_depend; cd != NULL; cd = cd->next) {
                    puts(cd->package);
                }
                break;
            case FIELD_DEP_BUILD:
                for (cd = c->build_depend; cd != NULL; cd = cd->next) {
                    puts(cd->package);
                }
                break;
            case FIELD_SRCS:
                for (cs = c->sources; cs != NULL; cs = cs->next) {
                    puts(cs->source);
                }
                break;

            default:
                break;
        }
        control_destroy(c);
    }
    return 0;
}
Exemple #2
0
/* -------------------------------------------------------------------------- *
 * control fd got readable, handle data                                       *
 * -------------------------------------------------------------------------- */
static void control_readable(int fd, void *ptr)
{
  char buf[1024];
  
  if(io_list[fd].status.closed || io_list[fd].status.err)
    servauth_shutdown();
  
  if(io_list[fd].recvq.lines)
  {
    while(io_gets(fd, buf, 1024) > 0)
    {
      if(control_parse(ptr, buf) == -1)
      {
        servauth_shutdown();
        return;
      }
    }
  }

  return;
}