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