audacity-actions/lib/helpers.js
Dmitry Vedenko 14079403be
Fixes getMD5
2022-02-01 14:14:07 +03:00

107 lines
2.5 KiB
JavaScript

const core = require('@actions/core');
const exec = require('@actions/exec');
const path = require('path');
const md5 = require('md5');
const fs = require('fs');
const runningOnCI = process.env['CI']
global.workspaceDir = process.env['GITHUB_WORKSPACE']
global.conanCachePath = path.join(workspaceDir, '.conan')
function log(msg) {
if (runningOnCI) {
core.info(msg);
} else {
console.log(msg);
}
}
function error(msg) {
if (runningOnCI) {
core.error(msg);
} else {
console.error(msg);
}
}
async function execWithLog(programm, arguments) {
if (runningOnCI) {
return exec.exec(programm, arguments);
} else {
return exec.exec(programm, arguments, {
listeners: {
/*debug: data => {
log(data);
},*/
stdout: data => {
log(data.toString());
},
stderr: data => {
error(data.toString());
}
}
});
}
}
async function getExecOutput(programm, arguments) {
if (runningOnCI) {
return exec.getExecOutput(programm, arguments);
} else {
return exec.getExecOutput(programm, arguments, {
listeners: {
stdout: data => {
log(data.toString());
},
stderr: data => {
error(data.toString());
}
}
});
}
}
async function awaitAll(array, functor) {
return await Promise.all(array.map(async (item) => functor(item)))
}
async function getMD5(filePath) {
const depsContent = await fs.promises.readFile(filePath);
return md5(depsContent);
}
function getDateString() {
const currentDate = new Date();
return [
currentDate.getFullYear(),
('0' + (currentDate.getMonth() + 1)).slice(-2),
('0' + currentDate.getDate()).slice(-2)
].join('')
}
const sleep = (waitTimeInMs) => new Promise(resolve => setTimeout(resolve, waitTimeInMs));
process.on('unhandledRejection', (reason, p) => {
error(reason);
core.setFailed(reason);
process.exit(1);
}).on('uncaughtException', err => {
error(err);
core.setFailed(err);
process.exit(1);
});
module.exports = {
log: log,
error: error,
execWithLog: execWithLog,
getExecOutput: getExecOutput,
sleep: sleep,
awaitAll: awaitAll,
getMD5: getMD5,
getDateString: getDateString,
}