This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Tarantool -- an efficient key/value data store".

The branch core-cfg_get has been created
        at  193b809592e3540e05ac34d64fd3f0c642c4722c (commit)


commit 193b809592e3540e05ac34d64fd3f0c642c4722c
Author: Roman Tokarev <[email protected]>
Date:   Mon Dec 6 15:27:46 2010 +0300

    [core] add --cfg_get option

diff --git a/core/tarantool.c b/core/tarantool.c
index 8e89ba1..138a024 100644
--- a/core/tarantool.c
+++ b/core/tarantool.c
@@ -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)
diff --git a/include/tarantool.h b/include/tarantool.h
index ff8600b..a308f3e 100644
--- a/include/tarantool.h
+++ b/include/tarantool.h
@@ -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


-- 
Tarantool -- an efficient key/value data store

_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to