rigjs
Version:
A multi-repos dev tool based on yarn and git.Rigjs is intended to be the simplest way to develop,share and deliver codes between different developers or different projects.
55 lines (53 loc) • 1.78 kB
text/typescript
/**
* @ignore
* @Description nothing
* @author Wang Bo (ralwayne@163.com)
* @date 2020/10/20 6:58 PM
*/
import shell from "shelljs";
import * as fs from 'fs'
import print from "@/print";
import json5 from 'json5';
//加载命令控制器
const info = () => {
console.log('process.platform');
print.info(`start checking modules|OS:${process.platform} `);
let rigJson5 = json5.parse(fs.readFileSync('package.rig.json5').toString());
const depKeyArr = Object.keys(rigJson5.dependencies);
for (let depKey of depKeyArr) {
const dep = rigJson5.dependencies[depKey];
if (process.platform === 'win32') {
print.info(`skip info on windows`);
return;
}
// let describeProcess = process.platform === 'win32'?shell.exec(`git ls-remote --tags --refs --sort="version:refname" ${dep.source} | awk -F/ "END{print$NF}"`,
// {silent: true}
// ): shell.exec(`git ls-remote --tags --refs --sort="version:refname" ${dep.source} | awk -F/ 'END{print$NF}'`,
// {silent: true}
// );
let describeProcess = shell.exec(`git ls-remote --tags --refs --sort="version:refname" ${dep.source} | awk -F/ 'END{print$NF}'`,
{silent: true}
)
let remoteLatestTag = describeProcess.stdout.trim();
if (dep.dev) {
print.warn(`[${dep.name}] is in developing.latest:${remoteLatestTag},`);
} else {
if (remoteLatestTag) {
if (dep.version === remoteLatestTag) {
print.info(`[${dep.name}] using:${dep.version},latest:${remoteLatestTag}`);
} else {
print.warn(`[${dep.name}] using:${dep.version},latest:${remoteLatestTag},Please confirm before updating!!!`);
}
} else {
print.error(`Get latest tag of ${dep.name} failed!Error:${describeProcess.stderr}`);
}
}
}
}
const load = async () => {
info();
}
export default {
load,
info,
}