From 64d7b6cf75e52a4698d9bdec61745573c39d2e5a Mon Sep 17 00:00:00 2001 From: Cyril Plisko Date: Mon, 24 Jun 2013 09:45:20 +0300 Subject: [PATCH] Override default SPA config location via environment When using zdb with non-default SPA config file it is not convenient to add -U all the time. This commit introduces support for setting/overriding SPA config location via environment variable 'SPA_CONFIG_PATH'. If -U flag is specified in the command line it will override any other value as usual. Signed-off-by: Brian Behlendorf Closes #1545 --- cmd/zdb/zdb.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c index 42c51e2..75d4198 100644 --- a/cmd/zdb/zdb.c +++ b/cmd/zdb/zdb.c @@ -3059,12 +3059,22 @@ main(int argc, char **argv) nvlist_t *policy = NULL; uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; + char *spa_config_path_env; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); dprintf_setup(&argc, argv); + /* + * If there is an environment variable SPA_CONFIG_PATH it overrides + * default spa_config_path setting. If -U flag is specified it will + * override this environment variable settings once again. + */ + spa_config_path_env = getenv("SPA_CONFIG_PATH"); + if (spa_config_path_env != NULL) + spa_config_path = spa_config_path_env; + while ((c = getopt(argc, argv, "bcdhilmM:suCDRSAFLXevp:t:U:P")) != -1) { switch (c) { case 'b': -- 1.8.3.1