60 lines
1.6 KiB
JavaScript
Executable File
60 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const _ = require("lodash");
|
|
const path = x => require("../" + x);
|
|
const immutable = path("js/immutable");
|
|
const git = path("js/git");
|
|
const shell = path("js/shell");
|
|
|
|
const commander = require("commander");
|
|
const program = new commander.Command();
|
|
|
|
program.parse(process.argv);
|
|
|
|
function endFeatureBranch(dp) {
|
|
const cmds = [
|
|
"git fetch origin -p",
|
|
"git fetch origin --tags",
|
|
`git merge origin/${dp.currentBranch}`,
|
|
`git checkout -b ${dp.featureBranch}`,
|
|
`git push -u origin ${dp.featureBranch}`
|
|
];
|
|
return _.reduce(
|
|
cmds,
|
|
(accum, elem) => {
|
|
return accum
|
|
.then(() => console.log(elem))
|
|
.then(() => console.log())
|
|
.then(() => shell.run(elem));
|
|
},
|
|
Promise.resolve({})
|
|
);
|
|
}
|
|
// function setBranchParts(dp) {
|
|
// def parse_branch (branch)
|
|
// parts = branch.split('-')
|
|
// error "invalid branch: user-standard-feature" unless parts.size > 2
|
|
//
|
|
// user = parts.shift
|
|
// standard = parts.shift
|
|
// error "invalid user: #{user}" unless [ENV['FEATURE_USER'],ENV['USER']].include? user
|
|
// error "invalid branch: #{standard}" unless standard_branches.include? standard or standard =~ release_branch_pattern
|
|
// feature = parts.join('-')
|
|
// { user: user, standard: standard, feature: feature }
|
|
// }
|
|
|
|
function toPromise(dp) {
|
|
return Promise.resolve(dp);
|
|
}
|
|
|
|
const x = toPromise({ program })
|
|
.then(setStandardBranches)
|
|
.then(setFeatureName)
|
|
.then(validateFeatureName)
|
|
.then(setPrefix)
|
|
.then(setCurrentBranch)
|
|
.then(validateCurrentBranch)
|
|
.then(setFeatureBranch)
|
|
.then(createFeatureBranch)
|
|
.catch(err => console.error(err));
|