X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Finit.c;h=6f8737b6e45b31aa25f7ae85f0a0f17a904efb1a;hb=f5bebbee811235124cf67836bcdd06f07471757b;hp=f12aae421844d9b42cbd8b520cbf921a2b4e9cad;hpb=a5a9eca66728d271a442125ac52098378c70cf42;p=bluesky.git diff --git a/bluesky/init.c b/bluesky/init.c index f12aae4..6f8737b 100644 --- a/bluesky/init.c +++ b/bluesky/init.c @@ -11,7 +11,21 @@ #include #include -#include "bluesky.h" +#include "bluesky-private.h" + +BlueSkyOptions bluesky_options; + +/* Environment variables that can be used to initialize settings. */ +static struct { + const char *env; + int *option; +} option_table[] = { + {"BLUESKY_OPT_SYNC_STORES", &bluesky_options.synchronous_stores}, + {"BLUESKY_OPT_WRITETHROUGH", &bluesky_options.writethrough_cache}, + {"BLUESKY_OPT_SYNC_INODE_FETCH", &bluesky_options.sync_inode_fetches}, + {"BLUESKY_OPT_SYNC_FRONTENDS", &bluesky_options.sync_frontends}, + {NULL, NULL} +}; /* BlueSky library initialization. */ @@ -23,6 +37,15 @@ void bluesky_init(void) g_thread_init(NULL); bluesky_crypt_init(); + for (int i = 0; option_table[i].env != NULL; i++) { + const char *val = getenv(option_table[i].env); + if (val != NULL) { + int v = atoi(val); + g_print("Option %s set to %d\n", option_table[i].env, v); + *option_table[i].option = atoi(val); + } + } + bluesky_store_init(); bluesky_store_init_s3(); }