예제 #1
0
int main(int argc, const char const* argv[]) {
        apr_pool_t* p = NULL;
        apr_initialize();
        apr_pool_create(&p, NULL);

        apr_getopt_t* opt;
        apr_status_t rv;

        char ch = '\0';
        const char* optarg = NULL;
        const char* config_opts = NULL;
        const char* install_opts = NULL;
        const char* make_opts = NULL;
        const char* url = NULL;
        Command request = None;

        rv = apr_getopt_init(&opt, p, argc, argv);

        while(apr_getopt(opt, "I:Lc:m:i:d:SF:B:", &ch, &optarg) == APR_SUCCESS) {
                switch(ch) {
                case 'I':
                        request = Install;
                        url = optarg;
                        break;

                case 'L':
                        request = List;
                        break;

                case 'c':
                        config_opts = optarg;
                        break;

                case 'm':
                        make_opts = optarg;
                        break;

                case 'i':
                        install_opts = optarg;
                        break;

                case 'S':
                        request = Init;
                        break;

                case 'F':
                        request = Fetch;
                        url = optarg;
                        break;

                case 'B':
                        request = Build;
                        url = optarg;
                        break;
                }
        }

        switch(request) {
        case Install:
                check(url, "You must give a url.");
                Command_install(p, url, config_opts, make_opts, install_opts);
                break;

        case List:
                DB_list();
                break;

        case Fetch:
                check(url, "You must give a url.");
                Command_fetch(p, url, true);
                log_info("Downloaded to %s and in /tmp", BUILD_DIR);
                break;

        case Build:
                check(url, "You must give a url.");
                Command_build(p, url, config_opts, make_opts, install_opts);
                break;

        case Init:
                rv = DB_init();
                check(rv == 0, "Failed to make the database.");
                break;

        default:
                sentinel("Invalid command given.");
        }

        return EXIT_SUCCESS;

 error:
        return EXIT_FAILURE;
}
예제 #2
0
파일: devpkg.c 프로젝트: Tobychev/LearnC
int main(int argc, const char const *argv[])
{
	apr_pool_t* p = NULL;
	apr_pool_initialize();
	apr_pool_create(&p,NULL);

	apr_getopt_t* opt;
	apr_status_t rv;

	char ch = '\0';
    const char *optarg = NULL;
    const char *config_opts = NULL;
    const char *install_opts = NULL;
    const char *make_opts = NULL;
    const char *url = NULL;
    enum CommandType request = COMMAND_NONE;

	rv = apr_getopt_init(&opt, p, argc, argv);

	while (apr_getopt(opt,"I:Lc:m:i:d:SF:B:", &ch, &optarg) == APR_SUCCESS) {
		switch (ch) {
			case 'I':
				request = COMMAND_INSTALL;
				url = optarg;
				break;

			case 'L':
				request = COMMAND_LIST;
				break;

			case 'c':
				config_opts = optarg;
				break;

			case 'm':
				make_opts = optarg;
				break;

			case 'i':
				install_opts = optarg;
				break;

			case 'S':
				request = COMMAND_INIT;
				break;

			case 'F':
				request = COMMAND_FETCH; 
				url = optarg;
				break;

			case 'B':
				request = COMMAND_BUILD;
				url = optarg;
				break;

			default:
				log_info("Unknown command");}}

	switch (request) {
		case COMMAND_INSTALL:
			check(url != NULL, "You must specify an URL.");
			Command_install(p, url, config_opts, make_opts, install_opts);
			break;

		case COMMAND_LIST:
			DB_list();
			break;

		case COMMAND_FETCH:
			check(url != NULL, "You must specify an URL.");
			Command_fetch(p, url, 1);
			log_info("Downloaded target to %s",BUILD_DIR);
			break;

		case COMMAND_BUILD:
			check(url != NULL, "You must specify an URL.");
			Command_install(p, url, config_opts, make_opts, install_opts);
			break;

		case COMMAND_INIT:
			rv = DB_init();
			check(rv == 0, "Failed to create database.");
			break;

		case COMMAND_NONE:
			printf("Usage: give one of the flags -S -I -L -F -B with apropriate arguments\n");
			break;

		default:
			sentinel("Invalid command given");}

	apr_pool_terminate();
	return 0;

error:

	apr_pool_terminate();
	return 1;
}
예제 #3
0
파일: devpkg.c 프로젝트: shackijj/lcthw
int main(int argc, const char const *argv[])
{
    apr_pool_t *p = NULL;
    apr_pool_initialize();
    apr_pool_create(&p, NULL);

    apr_getopt_t *opt;
    apr_status_t rv;

    char ch = '\0';
    const char *optarg = NULL;
    const char *config_opts = NULL;
    const char *install_opts = NULL;
    const char *make_opts = NULL;
    const char *url = NULL;
    enum CommandType request = COMMAND_NONE;

    const char *config_options[MAX_ARGS];
    int co_cnt = 0;
    int i = 0;

    rv = apr_getopt_init(&opt, p, argc, argv);

    while(apr_getopt(opt, "I:Lc:m:i:d:SF:B:", &ch, &optarg) == APR_SUCCESS) {        switch(ch) {
            case 'I':
                 request = COMMAND_INSTALL;
                 url = optarg;
                 break;

            case 'L':
                 request = COMMAND_LIST;
                 break;
          
            case 'c':
                 config_options[co_cnt] = optarg;
                 co_cnt++;
                 break;
            
            case 'm':
                 make_opts = optarg;
                 break;
           
            case 'i':
                 install_opts = optarg;
                 break;
        
            case 'S':
                 request = COMMAND_INIT;
                 break;
 
            case 'F':
                 request = COMMAND_FETCH;
                 url = optarg;
                 break;

            case 'B':
                 request = COMMAND_BUILD;
                 url = optarg;
                 break;
        }
    }

    switch(request) {
        case COMMAND_INSTALL:
            check(url, "You must at least give a URL.");
            Command_install(p, url, config_options, make_opts, install_opts);
            break;

        case COMMAND_LIST:
            DB_list();
            break;

        case COMMAND_FETCH:
            check(url != NULL, "You must give a URL.");
            Command_fetch(p, url, 1);
            log_info("Downloaded to %s and in /tmp/", BUILD_DIR);
            break;

        case COMMAND_BUILD:
            check(url, "You must at least give a URL.");
            Command_build(p, url, config_options, make_opts, install_opts);
            break;

        case COMMAND_INIT:
            rv = DB_init();
            check(rv == 0, "Failed to make the database.");
            break;

        default:
            sentinel("Invalid command given");
    }

    return 0;

error:
    return 1;
}
예제 #4
0
파일: devpkg.c 프로젝트: jfhbrook/lcthw
int main(int argc, const char const *argv[])
{
  apr_pool_t *p = NULL;

  apr_pool_initialize();

  apr_pool_create(&p, NULL);

  apr_getopt_t *opt;
  apr_status_t rv;

  char ch = '\0';
  const char *optarg = NULL;
  const char *config_opts = NULL;
  const char *install_opts = NULL;
  const char *make_opts = NULL;
  const char *url = NULL;
  enum CommandType request = COMMAND_NONE;

  rv = apr_getopt_init(&opt, p, argc, argv);

  while(apr_getopt(opt, "I:Lc:m:i:d:SF:B:", &ch, &optarg) == APR_SUCCESS) {
    switch (ch) {
      case 'I':
        request = COMMAND_INSTALL;
        url = optarg;
        break;
      case 'L':
        request = COMMAND_LIST;
        break;
      case 'c':
        config_opts = optarg;
        break;
      case 'm':
        make_opts = optarg;
        break;
      case 'i':
        install_opts = optarg;
        break;
      case 'S':
        request = COMMAND_INIT;
        break;
      case 'F':
        request = COMMAND_FETCH;
        url = optarg;
        break;
      case 'B':
        request = COMMAND_BUILD;
        url = optarg;
        break;
    }
  }

  switch(request) {
    case COMMAND_INSTALL:
      check(url, "You must at least give a URL.");
      Command_install(p, url, config_opts, make_opts, install_opts);
      break;
    case COMMAND_LIST:
      DB_list();
      break;
    case COMMAND_FETCH:
      check(url, "You must at least give a URL.");
      Command_build(p, url, config_opts, make_opts, install_opts);
      break;
    case COMMAND_INIT:
      rv = DB_init();
      check(rv == 0, "Failed2init db");
      break;
    default:
      sentinel("huh??");
  }

  return 0;

error:
  return 1;
}
예제 #5
0
char * test_list()
{
    DB_list();

    return NULL;
}