config: parsing.

This commit is contained in:
Christopher Jeffrey 2016-07-30 14:11:53 -07:00
parent ec41bf2be5
commit 7ec21588ac
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -122,7 +122,7 @@ config.parseData = function parseData(data) {
// Logger
options.logLevel = str(data.loglevel);
options.logConsole = bool(data.logconsole);
options.logFile = boolstr(data.logfile);
options.logFile = boolpath(data.logfile);
// Node
options.prefix = path(data.prefix);
@ -222,13 +222,13 @@ config.parseText = function parseText(text) {
}
key = key.replace(/\-/g, '').toLowerCase();
alias = config.alias.conf[key];
alias = config.alias.conf[key];
if (alias)
key = alias;
if (value.length === 0)
value = null;
continue;
data[key] = value;
}
@ -246,11 +246,8 @@ config.parseArg = function parseArg(argv) {
var data = {};
var arg, key, value, alias;
if (!argv) {
if (utils.isBrowser)
return data;
if (!argv)
argv = process.argv;
}
argv = argv.slice();
@ -261,17 +258,25 @@ config.parseArg = function parseArg(argv) {
// e.g. --opt
arg = arg.split('=');
key = arg[0];
if (arg.length > 1) {
// e.g. --opt=val
value = arg.slice(1).join('=').trim();
} else {
value = 'true';
}
key = key.replace(/\-/g, '');
alias = config.alias.arg[key];
if (alias)
key = alias;
if (value.length === 0)
continue;
data[key] = value;
continue;
}
@ -291,8 +296,14 @@ config.parseArg = function parseArg(argv) {
}
// e.g. foo
if (key)
data[key] = arg;
if (key) {
value = arg.trim();
if (value.length === 0)
continue;
data[key] = value;
}
}
return config.parseData(data);
@ -319,15 +330,18 @@ config.parseEnv = function parseEnv(env) {
if (key.indexOf('BCOIN_') !== 0)
continue;
value = env[key];
value = env[key].trim();
key = key.substring(6);
key = key.replace(/_/g, '').toLowerCase();
alias = config.alias.env[key];
alias = config.alias.env[key];
if (alias)
key = alias;
if (value.length === 0)
continue;
data[key] = value;
}
@ -353,14 +367,21 @@ function path(value) {
function bool(value) {
if (!value)
return null;
return value === 'true' || value === '1';
if (value === 'true' || value === '1')
return true;
if (value === 'false' || value === '0')
return false;
return null;
}
function num(value) {
if (value == null)
if (!value)
return null;
value = parseInt(value, 10);
value = +value;
if (!isFinite(value))
return null;
@ -368,7 +389,7 @@ function num(value) {
return value;
}
function boolstr(value) {
function boolpath(value) {
if (!value)
return null;
@ -385,14 +406,12 @@ function file(value) {
if (!fs)
return null;
value = path(value);
if (!value)
return null;
try {
return fs.readFileSync(path(value));
} catch (e) {
return null;
}
return fs.readFileSync(value);
}
function readFile(file) {