mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const chalk = require('chalk');
|
|
const configUtils = require('@serverless/utils/config');
|
|
const isNpmPackageWritable = require('../../utils/npmPackage/isWritable');
|
|
const isNpmGlobalPackage = require('../../utils/npmPackage/isGlobal');
|
|
const isStandaloneExecutable = require('../../utils/isStandaloneExecutable');
|
|
const isLocallyInstalled = require('../../utils/is-locally-installed');
|
|
const { confirm } = require('../../cli/interactive-setup/utils');
|
|
|
|
module.exports = {
|
|
async isApplicable() {
|
|
if (!isStandaloneExecutable && !process.env.SLS_INTERACTIVE_SETUP_TEST) {
|
|
if (await isLocallyInstalled()) return false;
|
|
if (!(await isNpmGlobalPackage())) return false;
|
|
if (!(await isNpmPackageWritable())) return false;
|
|
}
|
|
const autoUpdateConfig = configUtils.get('autoUpdate');
|
|
if (!autoUpdateConfig) return true;
|
|
if (autoUpdateConfig.enabled) return false;
|
|
return !autoUpdateConfig.isInteractiveSetupPromptDisabled;
|
|
},
|
|
async run() {
|
|
const isConfirmed = await confirm('Would you like the Framework to update automatically?', {
|
|
name: 'shouldSetupAutoUpdate',
|
|
});
|
|
if (!isConfirmed) {
|
|
configUtils.set('autoUpdate.isInteractiveSetupPromptDisabled', true);
|
|
return;
|
|
}
|
|
configUtils.set('autoUpdate.enabled', true);
|
|
|
|
process.stdout.write(
|
|
`\n${chalk.green(
|
|
'Auto updates were succesfully turned on.\n' +
|
|
'You may turn off at any time with "serverless config --no-autoupdate"'
|
|
)}\n`
|
|
);
|
|
},
|
|
};
|