node-talisman
Version:
A npm package for running Thoughtwork's Talisman tool
39 lines (36 loc) • 1.12 kB
JavaScript
import execSh from 'exec-sh';
import messages from "../messages.js";
import { CONSOLE_COLORS } from "../constants.js";
import logToConsole, { logToConsoleForDebugging } from "../utils/logToConsole.js";
import getProcessArgs from "../utils/getProcessArgs.js";
import wrapTextIfNotWindows from "../utils/wrapTextIfNotWindows.js";
const wrapTextWithQuotesIfNotWindows = wrapTextIfNotWindows(`"`);
const check = ({
filePath,
args
}) => {
logToConsoleForDebugging({
filePath
});
return new Promise((resolve, reject) => {
logToConsole({
color: CONSOLE_COLORS.cyan
}, messages.check.inProgress.toString());
logToConsole();
execSh([`${wrapTextWithQuotesIfNotWindows(filePath)} ${getProcessArgs(args)}`], error => {
if (!error) {
logToConsole({
color: CONSOLE_COLORS.green
}, messages.check.succeed.toString());
logToConsole();
return resolve();
}
logToConsole({
color: CONSOLE_COLORS.red
}, messages.check.failed.toString());
logToConsole();
return reject(error);
});
});
};
export default check;