39 lines
1.3 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 { confirm } = require('./utils');
module.exports = {
async check(serverless) {
if (serverless.isLocallyInstalled) return false;
if (!serverless.isStandaloneExecutable) {
if (!(await isNpmGlobalPackage())) return false;
if (!(await isNpmPackageWritable(serverless))) 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`
);
},
};