diff --git a/bin/goldilocks.js b/bin/goldilocks.js index 28d33c0..70526cd 100755 --- a/bin/goldilocks.js +++ b/bin/goldilocks.js @@ -69,6 +69,7 @@ function readConfigAndRun(args) { var recase = require('recase').create({}); config = recase.camelCopy(config); + config.debug = config.debug || args.debug; if (!config.dns) { config.dns = { modules: [{ name: 'proxy', port: 3053 }] }; @@ -85,15 +86,17 @@ function readConfigAndRun(args) { config.http = { modules: [{ name: 'proxy', domains: ['*'], port: 3000 }] }; } if (!config.tls) { - console.log("TODO: tls: { modules: { name: 'acme', email: 'foo@bar.com', domains: [ '*' ] } }"); - config.tls = { - agreeTos: args.agreeTos || args.agree || args['agree-tos'] - , servernames: (args.servernames||'').split(',').filter(Boolean).map(function (str) { return str.toLowerCase(); }) - }; + config.tls = {}; + } + if (!config.tls.acme && (args.email || args.agreeTos)) { + config.tls.acme = {}; + } + if (typeof args.agreeTos === 'string') { + config.tls.acme.approvedDomains = args.agreeTos.split(','); } if (args.email) { config.email = args.email; - config.tls.email = args.email; + config.tls.acme.email = args.email; } // maybe this should not go in config... but be ephemeral in some way? @@ -195,20 +198,20 @@ function readConfigAndRun(args) { function readEnv(args) { // TODO + try { + if (process.env.GOLDILOCKS_HOME) { + process.chdir(process.env.GOLDILOCKS_HOME); + } + } catch (err) {} + var env = { tunnel: process.env.GOLDILOCKS_TUNNEL_TOKEN || process.env.GOLDILOCKS_TUNNEL && true , email: process.env.GOLDILOCKS_EMAIL - , cwd: process.env.GOLDILOCKS_HOME + , cwd: process.env.GOLDILOCKS_HOME || process.cwd() , debug: process.env.GOLDILOCKS_DEBUG && true }; - args.cwd = args.cwd || env.cwd; - Object.keys(env).forEach(function (key) { - if ('undefined' === typeof args[key]) { - args[key] = env[key]; - } - }); - readConfigAndRun(args); + readConfigAndRun(Object.assign({}, env, args)); } var program = require('commander'); @@ -222,5 +225,4 @@ program .option('--debug', "Enable debug output") .parse(process.argv); -program.cwd = process.cwd(); readEnv(program);