30 lines
770 B
Plaintext
30 lines
770 B
Plaintext
const fs = require('fs').promises;
|
|
const path = require('path');
|
|
const sh = require('shelljs');
|
|
const tmp = require('tmp');
|
|
|
|
const mkTmpDir = () => {
|
|
const dir = tmp.dirSync({ prefix: 'release-it-' });
|
|
return dir.name;
|
|
};
|
|
|
|
const readFile = file => fs.readFile(path.resolve(file), 'utf8');
|
|
|
|
const gitAdd = (content, file, message) => {
|
|
sh.ShellString(content).toEnd(file);
|
|
sh.exec(`git add ${file}`);
|
|
const { stdout } = sh.exec(`git commit -m "${message}"`);
|
|
const match = stdout.match(/\[.+([a-z0-9]{7})\]/);
|
|
return match ? match[1] : null;
|
|
};
|
|
|
|
const getArgs = (args, prefix) =>
|
|
args.filter(args => typeof args[0] === 'string' && args[0].startsWith(prefix)).map(args => args[0].trim());
|
|
|
|
module.exports = {
|
|
mkTmpDir,
|
|
readFile,
|
|
gitAdd,
|
|
getArgs
|
|
};
|