170 lines
12 KiB
JavaScript
170 lines
12 KiB
JavaScript
"use strict";
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.Helper = exports.Process = exports.STATUS = void 0;
|
|
const index_1 = require("../../index");
|
|
const child_process_1 = require("child_process");
|
|
const ansiRegex = require('ansi-regex');
|
|
var STATUS;
|
|
(function (STATUS) {
|
|
STATUS[STATUS["OK"] = 0] = "OK";
|
|
STATUS[STATUS["ERROR"] = 1] = "ERROR";
|
|
STATUS[STATUS["PENDING"] = 2] = "PENDING";
|
|
})(STATUS || (exports.STATUS = STATUS = {}));
|
|
const fatalHandler = (message, fn) => {
|
|
if (message.startsWith('fatal:')) {
|
|
fn('\t\ ' + message);
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
const defaultFilter = (message) => {
|
|
return message.length > 0 &&
|
|
message !== '\n' &&
|
|
message !== '\r' &&
|
|
message !== '\r\n' &&
|
|
!message.startsWith('Debugger attached') &&
|
|
!message.includes('NODE_TLS_REJECT_UNAUTHORIZED') &&
|
|
!message.includes('Waiting for the debugger to disconnect');
|
|
};
|
|
// tslint:disable-next-line:no-empty
|
|
const subscribe = (signal, collector = () => { }) => {
|
|
signal.on('message', (message) => index_1.logger.debug('message', message));
|
|
signal.on('error', (error) => index_1.logger.error('std-error', error));
|
|
signal.on('data', (data) => {
|
|
const msg = data.toString().
|
|
replace(ansiRegex(), "");
|
|
if (!defaultFilter(msg)) {
|
|
return;
|
|
}
|
|
collector(msg);
|
|
process.stdout.write(data);
|
|
});
|
|
};
|
|
const merge = (buffer, data) => buffer.concat(data);
|
|
const hook = (process, resolve, reject, cmd, buffer = []) => {
|
|
const collector = (data) => { buffer.push(data); };
|
|
subscribe(process.stdout, collector);
|
|
subscribe(process.stderr, collector);
|
|
process.on('exit', (code, signal) => {
|
|
if (code) {
|
|
resolve({
|
|
code: STATUS.ERROR,
|
|
command: cmd,
|
|
error: code,
|
|
messages: buffer
|
|
});
|
|
}
|
|
else {
|
|
resolve({
|
|
code: STATUS.OK,
|
|
command: cmd,
|
|
messages: buffer
|
|
});
|
|
}
|
|
});
|
|
return process;
|
|
};
|
|
class Process {
|
|
constructor(options = {}) {
|
|
this.binary = 'magick';
|
|
this.cwd = '';
|
|
this.args = '';
|
|
this.buffer = [];
|
|
this.binary = options.binary || this.binary;
|
|
this.cwd = options.cwd || process.cwd();
|
|
this.buffer = options.buffer || [];
|
|
}
|
|
optionsToString(options) {
|
|
const args = [];
|
|
// tslint:disable-next-line:forin
|
|
for (const k in options) {
|
|
const val = options[k];
|
|
if (k.length === 1) {
|
|
// val is true, add '-k'
|
|
if (val === true) {
|
|
args.push('-' + k);
|
|
}
|
|
else if (val !== false) {
|
|
// if val is not false, add '-k val'
|
|
args.push('-' + k + ' ' + val);
|
|
}
|
|
}
|
|
else {
|
|
if (val === true) {
|
|
args.push('--' + k);
|
|
}
|
|
else if (val !== false) {
|
|
args.push('--' + k + '=' + val);
|
|
}
|
|
}
|
|
}
|
|
return args.join(' ');
|
|
}
|
|
optionsToArray(options) {
|
|
const args = [];
|
|
// tslint:disable-next-line:forin
|
|
for (const k in options) {
|
|
const val = options[k];
|
|
if (k.length === 1) {
|
|
// val is true, add '-k'
|
|
if (val === true) {
|
|
args.push('-' + k);
|
|
}
|
|
else if (val !== false) {
|
|
// if val is not false, add '-k val'
|
|
args.push('-' + k + ' ' + val);
|
|
}
|
|
}
|
|
else {
|
|
if (val === true) {
|
|
args.push('--' + k);
|
|
}
|
|
else if (val !== false) {
|
|
args.push('--' + k + '=' + val);
|
|
}
|
|
}
|
|
}
|
|
return args;
|
|
}
|
|
exec(command_1) {
|
|
return __awaiter(this, arguments, void 0, function* (command, args = []) {
|
|
args = [command].concat(args);
|
|
try {
|
|
const p = new Promise((resolve, reject) => {
|
|
let cmd = `${this.binary} ${args.join(' ')}`;
|
|
const p = (0, child_process_1.exec)(cmd, { cwd: this.cwd });
|
|
return hook(p, resolve, reject, this.binary + ' ' + args.join(' '), this.buffer);
|
|
});
|
|
return p;
|
|
}
|
|
catch (e) {
|
|
index_1.logger.error('Error executing command', e);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
exports.Process = Process;
|
|
class Helper {
|
|
static run(cwd_1, cmd_1, args_1) {
|
|
return __awaiter(this, arguments, void 0, function* (cwd, cmd, args, buffer = [], debug_stream = false) {
|
|
debug_stream && index_1.logger.info(`Run ${cmd} in ${cwd}`, args);
|
|
const gitProcess = new Process({
|
|
cwd,
|
|
binary: cmd,
|
|
buffer
|
|
});
|
|
return gitProcess.exec('', args);
|
|
});
|
|
}
|
|
}
|
|
exports.Helper = Helper;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3Byb2Nlc3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQW9DO0FBRXBDLGlEQUFrRDtBQUVsRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFFdkMsSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2QsK0JBQUUsQ0FBQTtJQUNGLHFDQUFLLENBQUE7SUFDTCx5Q0FBTyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLE1BQU0sc0JBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQXlCLEVBQVcsRUFBRTtJQUN6RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMvQixFQUFFLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWUsRUFBVyxFQUFFO0lBQy9DLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxJQUFJO1FBQ2hCLE9BQU8sS0FBSyxJQUFJO1FBQ2hCLE9BQU8sS0FBSyxNQUFNO1FBQ2xCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUM7UUFDakQsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDbkUsQ0FBQyxDQUFBO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBdUIsRUFBRSxZQUFpQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtJ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
|