mirror of
https://github.com/mattermost/mattermost.git
synced 2026-02-03 20:40:00 -05:00
* MM-54325 Have web app build script return error codes on failure * Make web app --runner option not return an error code
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
/* eslint-disable no-console, no-process-env */
|
|
|
|
const chalk = require('chalk');
|
|
const concurrently = require('concurrently');
|
|
|
|
const {makeRunner} = require('./runner.js');
|
|
const {getExitCode, getPlatformCommands} = require('./utils.js');
|
|
|
|
async function watchAll(useRunner) {
|
|
if (!useRunner) {
|
|
console.log(chalk.inverse.bold('Watching web app and all subpackages...'));
|
|
}
|
|
|
|
const commands = [
|
|
{command: 'npm:run --workspace=channels', name: 'webapp', prefixColor: 'cyan'},
|
|
];
|
|
|
|
commands.push(...getPlatformCommands('run'));
|
|
|
|
let runner;
|
|
if (useRunner) {
|
|
runner = makeRunner(commands);
|
|
}
|
|
|
|
console.log('\n');
|
|
|
|
const {result, commands: runningCommands} = concurrently(
|
|
commands,
|
|
{
|
|
killOthers: 'failure',
|
|
outputStream: runner?.getOutputStream(),
|
|
},
|
|
);
|
|
|
|
runner?.addCloseListener(() => {
|
|
for (const command of runningCommands) {
|
|
command.kill('SIGINT');
|
|
}
|
|
});
|
|
|
|
let exitCode = 0;
|
|
try {
|
|
await result;
|
|
} catch (closeEvents) {
|
|
exitCode = getExitCode(closeEvents, 0);
|
|
}
|
|
return exitCode;
|
|
}
|
|
|
|
const useRunner = process.argv[2] === '--runner' || process.env.MM_USE_WEBAPP_RUNNER;
|
|
|
|
watchAll(useRunner).then((exitCode) => {
|
|
process.exit(exitCode);
|
|
});
|
|
|