mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 18:55:26 +00:00
74 lines
1.9 KiB
JavaScript
Executable file
74 lines
1.9 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
import {promisify} from 'util';
|
|
|
|
import tryToCatch from 'try-to-catch';
|
|
import {createSimport} from 'simport';
|
|
import minor from 'minor';
|
|
import _place from 'place';
|
|
import rendy from 'rendy';
|
|
import shortdate from 'shortdate';
|
|
|
|
const simport = createSimport(import.meta.url);
|
|
const place = promisify(_place);
|
|
|
|
const Info = await simport('../package.json');
|
|
|
|
await main();
|
|
|
|
async function main() {
|
|
const history = '## Version history\n\n';
|
|
const link = '//github.com/coderaiser/cloudcmd/releases/tag/';
|
|
const template = '- *{{ date }}*, ' +
|
|
'**[v{{ version }}]' +
|
|
'(' + link + 'v{{ version }})**\n';
|
|
|
|
const {version} = Info;
|
|
|
|
const [error, versionNew] = await tryToCatch(cl);
|
|
|
|
if (error)
|
|
return console.error(error);
|
|
|
|
await replaceVersion('README.md', version, versionNew);
|
|
await replaceVersion('HELP.md', version, versionNew);
|
|
|
|
const historyNew = history + rendy(template, {
|
|
date : shortdate(),
|
|
version : versionNew,
|
|
});
|
|
|
|
await replaceVersion('HELP.md', history, historyNew);
|
|
}
|
|
|
|
async function replaceVersion(name, version, versionNew) {
|
|
const [error] = await tryToCatch(place, name, version, versionNew);
|
|
|
|
if (error)
|
|
return console.error(error);
|
|
|
|
console.log('done: ' + name);
|
|
}
|
|
|
|
async function cl() {
|
|
const {argv} = process;
|
|
const length = argv.length - 1;
|
|
const last = process.argv[length];
|
|
const regExp = /^--(major|minor|patch)$/;
|
|
const [, match] = last.match(regExp) || [];
|
|
|
|
console.log(last);
|
|
|
|
if (!regExp.test(last))
|
|
throw Error('ERROR: version is missing. release --patch|--minor|--major');
|
|
|
|
return getVersionNew(last, match);
|
|
}
|
|
|
|
function getVersionNew(last, match) {
|
|
if (match)
|
|
return minor(match, Info.version);
|
|
|
|
return last.substr(3);
|
|
}
|
|
|