Added configure and command line option --modules.

This commit is contained in:
Igor Sysoev
2017-08-26 13:37:44 +03:00
parent 9aaa7d8c20
commit 7f5b57bfb9
5 changed files with 41 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ NXT_LD_OPT=
NXT_PREFIX= NXT_PREFIX=
NXT_PID="nginext.pid" NXT_PID="nginext.pid"
NXT_LOG="nginext.log" NXT_LOG="nginext.log"
NXT_MODULES="modules"
NXT_USER="nobody" NXT_USER="nobody"
NXT_GROUP= NXT_GROUP=
@@ -64,6 +65,7 @@ do
--prefix=*) NXT_PREFIX="$value" ;; --prefix=*) NXT_PREFIX="$value" ;;
--pid=*) NXT_PID="$value" ;; --pid=*) NXT_PID="$value" ;;
--log=*) NXT_LOG="$value" ;; --log=*) NXT_LOG="$value" ;;
--modules=*) NXT_MODULES="$value" ;;
--user=*) NXT_USER="$value" ;; --user=*) NXT_USER="$value" ;;
--group=*) NXT_GROUP="$value" ;; --group=*) NXT_GROUP="$value" ;;
@@ -124,3 +126,13 @@ case "$NXT_LOG" in
/*) ;; /*) ;;
*) NXT_LOG="$NXT_PREFIX$NXT_LOG" ;; *) NXT_LOG="$NXT_PREFIX$NXT_LOG" ;;
esac esac
case "$NXT_MODULES" in
""|*/) ;;
*) NXT_MODULES="$NXT_MODULES/" ;;
esac
case "$NXT_MODULES" in
/*) ;;
*) NXT_MODULES="$NXT_PREFIX$NXT_MODULES" ;;
esac

1
configure vendored
View File

@@ -65,6 +65,7 @@ cat << END >> $NXT_AUTO_CONFIG_H
#define NXT_PID "$NXT_PID" #define NXT_PID "$NXT_PID"
#define NXT_LOG "$NXT_LOG" #define NXT_LOG "$NXT_LOG"
#define NXT_MODULES "$NXT_MODULES"
#define NXT_USER "$NXT_USER" #define NXT_USER "$NXT_USER"
#define NXT_GROUP "$NXT_GROUP" #define NXT_GROUP "$NXT_GROUP"

View File

@@ -46,9 +46,10 @@ nxt_discovery_start(nxt_task_t *task, void *data)
nxt_debug(task, "DISCOVERY"); nxt_debug(task, "DISCOVERY");
b = nxt_discovery_modules(task, "build/nginext.*");
rt = task->thread->runtime; rt = task->thread->runtime;
b = nxt_discovery_modules(task, rt->modules);
main_port = rt->port_by_type[NXT_PROCESS_MASTER]; main_port = rt->port_by_type[NXT_PROCESS_MASTER];
nxt_port_socket_write(task, main_port, NXT_PORT_MSG_MODULES, -1, nxt_port_socket_write(task, main_port, NXT_PORT_MSG_MODULES, -1,

View File

@@ -703,6 +703,7 @@ nxt_runtime_conf_init(nxt_task_t *task, nxt_runtime_t *rt)
rt->group = NXT_GROUP; rt->group = NXT_GROUP;
rt->pid = NXT_PID; rt->pid = NXT_PID;
rt->log = NXT_LOG; rt->log = NXT_LOG;
rt->modules = NXT_MODULES;
if (nxt_runtime_conf_read_cmd(task, rt) != NXT_OK) { if (nxt_runtime_conf_read_cmd(task, rt) != NXT_OK) {
return NXT_ERROR; return NXT_ERROR;
@@ -740,6 +741,14 @@ nxt_runtime_conf_init(nxt_task_t *task, nxt_runtime_t *rt)
file = nxt_list_first(rt->log_files); file = nxt_list_first(rt->log_files);
file->name = file_name.start; file->name = file_name.start;
ret = nxt_file_name_create(rt->mem_pool, &file_name, "%snginext.*%Z",
rt->modules);
if (nxt_slow_path(ret != NXT_OK)) {
return NXT_ERROR;
}
rt->modules = (char *) file_name.start;
return NXT_OK; return NXT_OK;
} }
@@ -761,6 +770,8 @@ nxt_runtime_conf_read_cmd(nxt_task_t *task, nxt_runtime_t *rt)
static const char no_group[] = "option \"--group\" requires group name\n"; static const char no_group[] = "option \"--group\" requires group name\n";
static const char no_pid[] = "option \"--pid\" requires filename\n"; static const char no_pid[] = "option \"--pid\" requires filename\n";
static const char no_log[] = "option \"--log\" requires filename\n"; static const char no_log[] = "option \"--log\" requires filename\n";
static const char no_modules[] =
"option \"--modules\" requires directory\n";
argv = &nxt_process_argv[1]; argv = &nxt_process_argv[1];
@@ -857,6 +868,19 @@ nxt_runtime_conf_read_cmd(nxt_task_t *task, nxt_runtime_t *rt)
continue; continue;
} }
if (nxt_strcmp(p, "--modules") == 0) {
if (*argv == NULL) {
write(STDERR_FILENO, no_modules, sizeof(no_modules) - 1);
return NXT_ERROR;
}
p = *argv++;
rt->modules = p;
continue;
}
if (nxt_strcmp(p, "--no-daemon") == 0) { if (nxt_strcmp(p, "--no-daemon") == 0) {
rt->daemon = 0; rt->daemon = 0;
continue; continue;

View File

@@ -57,6 +57,7 @@ struct nxt_runtime_s {
const char *group; const char *group;
const char *pid; const char *pid;
const char *log; const char *log;
const char *modules;
nxt_queue_t engines; /* of nxt_event_engine_t */ nxt_queue_t engines; /* of nxt_event_engine_t */