wip
This commit is contained in:
parent
d389a4f9b6
commit
e381929bc3
@ -11,9 +11,13 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@gitgraph/node": "^0.1.18",
|
"@gitgraph/node": "^0.1.18",
|
||||||
|
"chalk": "^4.1.2",
|
||||||
|
"columnify": "^1.5.4",
|
||||||
"inquirer": "^7.3.3",
|
"inquirer": "^7.3.3",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"simple-git": "^2.47.0",
|
"simple-git": "^2.47.0",
|
||||||
|
"stringify-tree": "^1.1.1",
|
||||||
|
"updeep": "^1.2.1",
|
||||||
"yargs": "^16.2.0",
|
"yargs": "^16.2.0",
|
||||||
"yurnalist": "^2.1.0"
|
"yurnalist": "^2.1.0"
|
||||||
}
|
}
|
||||||
|
51
src/commands/status.js
Normal file
51
src/commands/status.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
const Git = require('simple-git');
|
||||||
|
const inquirer = require('inquirer');
|
||||||
|
const report = require('yurnalist');
|
||||||
|
const _ = require('lodash');
|
||||||
|
const u = require('updeep');
|
||||||
|
const columnify = require('columnify');
|
||||||
|
const chalk = require('chalk');
|
||||||
|
|
||||||
|
module.exports = async (yargs) => {
|
||||||
|
const config = (await Git().listConfig('local')).all;
|
||||||
|
|
||||||
|
let tree = Object.entries(config).reduce(
|
||||||
|
(accum, [key,value]) => u.updateIn(key,value,accum), {}
|
||||||
|
);
|
||||||
|
|
||||||
|
const branches = {};
|
||||||
|
|
||||||
|
const current = (await Git().raw('branch','--show-current')).replace("\n",'');
|
||||||
|
|
||||||
|
for( const branch in tree.branch ) {
|
||||||
|
const entry = tree.branch[branch];
|
||||||
|
|
||||||
|
if( 'mikado-done' in entry ) {
|
||||||
|
|
||||||
|
let deps = entry['mikado-dependency'];
|
||||||
|
if(!Array.isArray(deps)) deps = [ deps ].filter(x=>x);
|
||||||
|
|
||||||
|
branches[branch] = {
|
||||||
|
bullet: branch === current ? '*': ' ',
|
||||||
|
dependencies: deps.length > 0 ? deps.map( dep => chalk.magenta(dep) ): '',
|
||||||
|
name: chalk.blue.bold(branch),
|
||||||
|
upstream: entry['mikado-upstream'],
|
||||||
|
base: chalk.cyan.italic(entry['mikado-base'] ?? ''),
|
||||||
|
done: entry['mikado-done'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log( "\nMikado status\n" );
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
columnify( Object.values(branches), {
|
||||||
|
showHeaders: false,
|
||||||
|
columns: [ 'bullet', 'name', 'base', 'dependencies' ],
|
||||||
|
config: {
|
||||||
|
base: { minWidth: 10 },
|
||||||
|
}
|
||||||
|
} )
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
@ -1,9 +1,15 @@
|
|||||||
const yargs = require("yargs");
|
const yargs = require("yargs");
|
||||||
const new_branch = require("./commands/new_branch");
|
const new_branch = require("./commands/new_branch");
|
||||||
|
const status = require("./commands/status");
|
||||||
|
|
||||||
yargs
|
yargs
|
||||||
.scriptName("git-mikado")
|
.scriptName("git-mikado")
|
||||||
.showHelpOnFail(true)
|
.showHelpOnFail(true)
|
||||||
|
.command(
|
||||||
|
"status",
|
||||||
|
"show status of all mikado branches",
|
||||||
|
status
|
||||||
|
)
|
||||||
.command(
|
.command(
|
||||||
"new [branch]",
|
"new [branch]",
|
||||||
"create new mikado branch",
|
"create new mikado branch",
|
||||||
|
Loading…
Reference in New Issue
Block a user