Skip to content
Snippets Groups Projects
Commit 193b8095 authored by Roman Tokarev's avatar Roman Tokarev
Browse files

[core] add --cfg_get option

parent 8c336cda
No related branches found
No related tags found
No related merge requests found
......@@ -226,6 +226,7 @@ main(int argc, char **argv)
{
int c, verbose = 0;
char *cat_filename = NULL;
char *cfg_paramname = NULL;
bool be_daemon = false;
int n_accepted, n_skipped;
FILE *f;
......@@ -269,6 +270,10 @@ main(int argc, char **argv)
.has_arg = 0,
.flag = NULL,
.val = 'D'},
{.name = "cfg_get",
.has_arg = 1,
.flag = NULL,
.val = 'g'},
{.name = NULL,
.has_arg = 0,
.flag = NULL,
......@@ -302,6 +307,10 @@ main(int argc, char **argv)
case 'I':
init_storage = true;
break;
case 'g':
role = cfg_get;
cfg_paramname = strdup(optarg);
break;
}
}
......@@ -319,6 +328,7 @@ main(int argc, char **argv)
fprintf(stderr, " -p, --create_pid\n");
fprintf(stderr, " -v, --verbose\n");
fprintf(stderr, " -D, --daemonize\n");
fprintf(stderr, " --cfg_get=paramname\n");
return 0;
}
......@@ -355,6 +365,25 @@ main(int argc, char **argv)
}
#endif
if (role == cfg_get) {
tarantool_cfg_iterator_t *i;
char *key, *value;
i = tarantool_cfg_iterator_init();
while ((key = tarantool_cfg_iterator_next(i, &cfg, &value)) != NULL) {
if (strcmp(key, cfg_paramname) == 0) {
printf("%s\n", value);
free(value);
return 0;
}
free(value);
}
return 0;
}
cfg.log_level += verbose;
if (cfg.work_dir != NULL && chdir(cfg.work_dir) == -1)
......
......@@ -51,7 +51,7 @@ double tarantool_uptime(void);
char **init_set_proc_title(int argc, char **argv);
void set_proc_title(const char *format, ...);
enum tarantool_role { usage, cat, def };
enum tarantool_role { usage, cat, def, cfg_get };
extern enum tarantool_role role;
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment