serverless/scripts/postinstall.js
2020-01-10 14:07:59 +01:00

49 lines
1.5 KiB
JavaScript

'use strict';
const boxen = require('boxen');
const chalk = require('chalk');
const isStandaloneExecutable = require('../lib/utils/isStandaloneExecutable');
const isWindows = process.platform === 'win32';
const truthyStr = val => val && !['0', 'false', 'f', 'n', 'no'].includes(val.toLowerCase());
const { CI, ADBLOCK, SILENT } = process.env;
if (!truthyStr(CI) && !truthyStr(ADBLOCK) && !truthyStr(SILENT)) {
const messageTokens = ['Serverless Framework successfully installed!'];
if (isStandaloneExecutable && !isWindows) {
messageTokens.push(
'To start your first project, please open another terminal and run “serverless”.',
'You can uninstall at anytime by running “serverless uninstall”.'
);
} else {
messageTokens.push("To start your first project run 'serverless'.");
}
const message = messageTokens.join('\n\n');
process.stdout.write(
`${
isStandaloneExecutable && isWindows
? message
: boxen(chalk.yellow(message), {
padding: 1,
margin: 1,
borderColor: 'yellow',
})
}\n`
);
}
try {
const Serverless = require('../lib/Serverless');
const serverless = new Serverless();
serverless
.init()
.then(() => serverless.utils.logStat(serverless, 'install'))
.catch(() => {});
} catch (error) {
// Ignore any eventual errors.
// Package when installed globally may be installed in uncommon user contexts,
// that may lead to fs access related crashes
// when e.g. trying to access user's .serverlessrc config
}