From 131c1c64f646f2fa3adece698d1da240dc969f03 Mon Sep 17 00:00:00 2001 From: Michael FIG Date: Wed, 18 Mar 2020 18:51:44 -0600 Subject: [PATCH] fix: allow disabling of logging by setting DEBUG='' --- packages/agoric-cli/lib/start.js | 19 ++++++++++++++++--- .../cosmic-swingset/lib/anylogger-agoric.js | 14 ++++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/packages/agoric-cli/lib/start.js b/packages/agoric-cli/lib/start.js index ab398b84deb..7b9d6847c8e 100644 --- a/packages/agoric-cli/lib/start.js +++ b/packages/agoric-cli/lib/start.js @@ -13,9 +13,14 @@ export default async function startMain(progname, rawArgs, powers, opts) { const { anylogger, fs, spawn, os, process } = powers; const log = anylogger('agoric:start'); - const pspawn = (cmd, cargs, { stdio = 'inherit', ...rest } = {}) => { + const pspawnEnv = { ...process.env }; + const pspawn = ( + cmd, + cargs, + { stdio = 'inherit', env = pspawnEnv, ...rest } = {}, + ) => { log.info(chalk.blueBright(cmd, ...cargs)); - const cp = spawn(cmd, cargs, { stdio, ...rest }); + const cp = spawn(cmd, cargs, { stdio, env, ...rest }); const pr = new Promise((resolve, _reject) => { cp.on('exit', resolve); cp.on('error', () => resolve(-1)); @@ -62,6 +67,7 @@ export default async function startMain(progname, rawArgs, powers, opts) { async function startFakeChain(profileName, _startArgs, popts) { const fakeDelay = popts.delay === undefined ? FAKE_CHAIN_DELAY : Number(popts.delay); + if (!opts.sdk) { if (!(await exists('_agstate/agoric-servers/node_modules'))) { log.error(`you must first run '${progname} install'`); @@ -195,10 +201,17 @@ export default async function startMain(progname, rawArgs, powers, opts) { }; const { _: args, ...popts } = parseArgs(rawArgs, { - boolean: ['reset', 'restart', 'pull'], + boolean: ['reset', 'restart', 'pull', 'debug'], default: { restart: true }, }); + if (popts.debug) { + // Crank out the debugging. + pspawnEnv.DEBUG = 'agoric'; + } else { + pspawnEnv.DEBUG = ''; + } + const profileName = args[0] || 'dev'; const startFn = profiles[profileName]; if (!startFn) { diff --git a/packages/cosmic-swingset/lib/anylogger-agoric.js b/packages/cosmic-swingset/lib/anylogger-agoric.js index dbf8efdfd63..1c93c34dd88 100644 --- a/packages/cosmic-swingset/lib/anylogger-agoric.js +++ b/packages/cosmic-swingset/lib/anylogger-agoric.js @@ -2,8 +2,18 @@ import anylogger from 'anylogger'; // Turn on debugging output with DEBUG=agoric -const debugging = process.env.DEBUG && process.env.DEBUG.includes('agoric'); -const defaultLevel = debugging ? anylogger.levels.debug : anylogger.levels.log; +let debugging; +if (process.env.DEBUG === undefined) { + // DEBUG not set, default to log level. + debugging = 'log'; +} else if (process.env.DEBUG.includes('agoric')) { + // DEBUG set and we're enabled; verbose. + debugging = 'debug'; +} else { + // DEBUG set but we're not enabled; quieter than normal. + debugging = 'info'; +} +const defaultLevel = anylogger.levels[debugging]; const oldExt = anylogger.ext; anylogger.ext = (l, o) => {