Filling in the devpkg main executable, almost ready for challenge and mid-term (?)
This commit is contained in:
parent
61c100d6dc
commit
313b7e6e44
1
devpkg/.gitignore
vendored
Normal file
1
devpkg/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
devpkg
|
@ -1,6 +1,6 @@
|
|||||||
PREFIX?=/usr/local
|
PREFIX?=/usr/local
|
||||||
CFLAGS=-g -Wall -I${PREFIX}/apr/include/apr-1 -D_LARGEFILE64_SOURCE
|
CFLAGS=-g -Wall -I${PREFIX}/apr/include/apr-1 -D_LARGEFILE64_SOURCE
|
||||||
LDFLAGS=-lapr-1 -pthread -laprutil-1
|
LDFLAGS=-L${PREFIX}/apr/lib -lapr-1 -pthread -laprutil-1
|
||||||
|
|
||||||
all: devpkg
|
all: devpkg
|
||||||
|
|
||||||
|
105
devpkg/devpkg.c
Normal file
105
devpkg/devpkg.c
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <apr_general.h>
|
||||||
|
#include <apr_getopt.h>
|
||||||
|
#include <apr_strings.h>
|
||||||
|
#include <apr_lib.h>
|
||||||
|
#include <apr_strings.h>
|
||||||
|
|
||||||
|
#include "dbg.h"
|
||||||
|
#include "db.h"
|
||||||
|
#include "commands.h"
|
||||||
|
|
||||||
|
|
||||||
|
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 != 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_opts, 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;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user