diff --git a/headless/index.js b/headless/index.js index b4a717e47..a4b04b664 100644 --- a/headless/index.js +++ b/headless/index.js @@ -47,7 +47,7 @@ yargs startFlipper, ) .version(global.__VERSION__) - .help().argv; + .help(); function startFlipper({ dev, diff --git a/src/utils/argvUtils.js b/src/utils/argvUtils.js index fab9de54f..42bf7fcd4 100644 --- a/src/utils/argvUtils.js +++ b/src/utils/argvUtils.js @@ -9,7 +9,9 @@ import electron from 'electron'; import isProduction from './isProduction'; export const isAutoUpdaterEnabled = () => - // $FlowFixMe: argv is not included in the type defs. - !electron.remote.process.argv.includes('--no-updater') && + // TODO(T39788540): Centralise config access and avoid parsing multiple times. + // $FlowFixMe: env is not in the type defs. + JSON.parse(electron.remote?.process.env.CONFIG || process.env.CONFIG || '{}') + .updaterEnabled && isProduction() && - process.platform === 'darwin'; + process.platform === 'darwin'; \ No newline at end of file diff --git a/static/index.js b/static/index.js index 0385cfd34..ea4b3f9c6 100644 --- a/static/index.js +++ b/static/index.js @@ -17,6 +17,7 @@ const compilePlugins = require('./compilePlugins.js'); const os = require('os'); const setup = require('./setup'); const expandTilde = require('expand-tilde'); +const yargs = require('yargs'); // disable electron security warnings: https://github.com/electron/electron/blob/master/docs/tutorial/security.md#security-native-capabilities-and-your-responsibility process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = true; @@ -36,7 +37,17 @@ if (process.platform === 'darwin') { } } -let {config, configPath, flipperDir} = setup(); +const argv = yargs + .usage('$0 [args]') + .option('updater', { + default: true, + describe: 'Toggle the built-in update mechanism.', + type: 'boolean', + }) + .version(global.__VERSION__) + .help().argv; + +let {config, configPath, flipperDir} = setup(argv); const pluginPaths = config.pluginPaths .concat( diff --git a/static/setup.js b/static/setup.js index 27fdf322d..7bc8459ec 100644 --- a/static/setup.js +++ b/static/setup.js @@ -9,7 +9,7 @@ const path = require('path'); const os = require('os'); const fs = require('fs'); -module.exports = function() { +module.exports = function(argv) { if (!process.env.ANDROID_HOME) { process.env.ANDROID_HOME = '/opt/android_sdk'; } @@ -27,7 +27,11 @@ module.exports = function() { } const configPath = path.join(flipperDir, 'config.json'); - let config = {pluginPaths: [], disabledPlugins: [], lastWindowPosition: {}}; + let config = { + pluginPaths: [], + disabledPlugins: [], + lastWindowPosition: {}, + }; try { config = { @@ -39,5 +43,11 @@ module.exports = function() { fs.writeFileSync(configPath, JSON.stringify(config)); } + // Non-persistent CLI arguments. + config = { + ...config, + updaterEnabled: argv.updater, + }; + return {config, configPath, flipperDir}; };