-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·52 lines (43 loc) · 1.21 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env node
const { program } = require("commander");
const { MultiSelect } = require("enquirer");
const { _branches, _delete, _update, _rebase } = require("./commands");
program.version("1.0.0");
program.option("-u, --update", "update selected branches");
program.option("-d, --delete", "delete selected branches");
program.option("-r, --rebase", "rebase selected branches");
program.option(
"-b, --base <base>",
"base branch to rebase against (if rebase is selected)",
"develop"
);
program.parse(process.argv);
const options = program.opts();
let command = undefined;
if (options.update) {
command = _update;
} else if (options.delete) {
command = _delete;
} else if (options.rebase) {
command = (b) => _rebase("develop", b);
} else {
console.log("Select an option");
process.exit(1);
}
(async function () {
const allBranches = await _branches();
const branchPrompt = new MultiSelect({
name: "branches",
message: "Select your branches",
choices: allBranches,
});
const chosenBranches = await branchPrompt.run();
for (let b of chosenBranches) {
try {
await command(b);
} catch (err) {
process.stderr.write(err + "\n");
process.exit(1);
}
}
})();