1 | ;
|
2 | var _ = require("../lodash.custom");
|
3 | var common = "../opts/common.json";
|
4 | var runcommon = "../opts/run-common.json";
|
5 | var globalcommon = "../opts/global-common.json";
|
6 | exports.commands = {
|
7 | run: {
|
8 | alias: ["run", "r"],
|
9 | description: "Run a task(s)",
|
10 | opts: [
|
11 | "../opts/command.run.opts.json",
|
12 | runcommon,
|
13 | globalcommon,
|
14 | common,
|
15 | ],
|
16 | help: "Usage: crossbow run [...tasks] [OPTIONS]\n\n{bold:Run Options:}\n\n" + optionsList(_.merge({}, require("../opts/command.run.opts.json"), require(runcommon))) + "\n\n{bold:Global Options:}\n\n" + optionsList(_.merge({}, require(globalcommon), require(common))) + "\n\n{bold:Example: run 2 named tasks in parallel} \n\n $ crossbow run task1 task2 -p\n\n{bold:Example: use a config file from another folder} \n\n $ crossbow run <task-name> -c .conf/crossbow.yaml\n "
|
17 | },
|
18 | watch: {
|
19 | alias: ["watch", "w"],
|
20 | description: "Run a watcher(s)",
|
21 | opts: [
|
22 | "../opts/command.watch.opts.json",
|
23 | globalcommon,
|
24 | runcommon,
|
25 | common
|
26 | ],
|
27 | help: "Usage: crossbow watch [...watcher] [OPTIONS]\n\n{bold:Watch Options:}\n\n" + twoColFromJson(_.merge({}, require("../opts/command.watch.opts.json"), require("../opts/run-common.json")), "desc") + "\n\n{bold:Global Options:}\n\n" + twoColFromJson(_.merge({}, require(globalcommon), require(common)), "desc") + "\n\n{bold:Example: run a watcher called 'dev'} \n\n $ crossbow watch dev\n\n{bold:Example: run a shorthand watcher } \n\n $ crossbow watch '*.json -> my-task' --debounce 500 --block\n "
|
28 | },
|
29 | tasks: {
|
30 | alias: ["tasks", "t", "ls"],
|
31 | description: "See your available top-level tasks",
|
32 | opts: [
|
33 | "../opts/command.tasks.opts.json",
|
34 | common,
|
35 | globalcommon
|
36 | ],
|
37 | help: "Usage: crossbow tasks [OPTIONS]\n\n{bold:Options:}\n\n" + twoColFromJson(_.merge({}, require(globalcommon), require(common)), "desc") + "\n\n{bold:Example: show all available tasks} \n\n $ crossbow tasks\n\n{bold:Example: show all tasks different config file} \n\n $ crossbow tasks -c conf/config.js\n "
|
38 | },
|
39 | watchers: {
|
40 | alias: ["watchers"],
|
41 | description: "See your available watchers",
|
42 | opts: [
|
43 | "../opts/command.watchers.opts.json",
|
44 | globalcommon
|
45 | ],
|
46 | help: "Usage: crossbow watchers [OPTIONS]\n \n{bold:Options:} \n\n" + twoColFromJson(_.merge({}, require(globalcommon)), "desc") + "\n\n{bold:Example: Show watchers from a config file}\n\n $ crossbow watchers -c conf/config.js\n"
|
47 | },
|
48 | init: {
|
49 | alias: ["init", "i"],
|
50 | description: "Create a configuration file",
|
51 | opts: [
|
52 | "../opts/command.init.opts.json",
|
53 | globalcommon
|
54 | ],
|
55 | help: "Usage: crossbow init [OPTIONS]\n\n{bold:Init Options:}\n\n" + twoColFromJson(_.merge({}, require("../opts/command.init.opts.json")), "desc") + "\n\n{bold:Options:}\n\n" + twoColFromJson(_.merge({}, require(globalcommon)), "desc") + "\n\n{bold:Examples: Create a config file in default format (yaml)}\n\n $ crossbow init\n\n{bold:Examples: Create a config file in JSON format}\n\n $ crossbow init --type json\n"
|
56 | },
|
57 | docs: {
|
58 | alias: ["docs"],
|
59 | description: "Generate documentation automatically",
|
60 | opts: [
|
61 | "../opts/command.docs.opts.json",
|
62 | globalcommon
|
63 | ],
|
64 | help: "Usage: crossbow docs [OPTIONS]\n\n{bold:Docs Options:}\n\n" + twoColFromJson(_.merge({}, require("../opts/command.docs.opts.json")), "desc") + "\n\n{bold:Options:}\n\n" + twoColFromJson(_.merge({}, require(globalcommon)), "desc") + "\n\n{bold:Example: Generate documentation in the current directory}\n\n $ crossbow docs\n\n{bold:Example: Create a NEW file containing documentation}\n\n $ crossbow docs --output docs.md\n \n{bold:Example: Override documentation in an existing file}\n\n $ crossbow docs --file existing-docs.md\n"
|
65 | }
|
66 | };
|
67 | function optionsList(obj) {
|
68 | return twoColFromJson(obj, "desc", function (key, subject) {
|
69 | var open = "--" + key;
|
70 | if (subject.alias && subject.alias.length) {
|
71 | return [open, ", "].concat(subject.alias.map(function (x) { return "-" + x; }).join(", ")).join("");
|
72 | }
|
73 | return open;
|
74 | });
|
75 | }
|
76 | function twoColFromJson(json, rightSidePropertyName, leftside) {
|
77 | if (!leftside)
|
78 | leftside = function (subject) { return subject; };
|
79 | var cols = Object.keys(json).map(function (key) {
|
80 | var subject = json[key];
|
81 | return [leftside(key, subject), json[key][rightSidePropertyName]];
|
82 | });
|
83 | var longest = cols.reduce(function (acc, item) {
|
84 | if (item[0].length > acc)
|
85 | return item[0].length;
|
86 | return acc;
|
87 | }, 0);
|
88 | var padded = cols.map(function (tuple) {
|
89 | if (tuple[0].length < longest) {
|
90 | return [tuple[0] + new Array(longest - tuple[0].length).join(" ") + " ", tuple[1]];
|
91 | }
|
92 | return tuple;
|
93 | });
|
94 | return padded.reduce(function (acc, item) {
|
95 | return acc.concat(" " + item.join(" "));
|
96 | }, []).join("\n");
|
97 | }
|
98 | exports.twoColFromJson = twoColFromJson;
|
99 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNvbW1hbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS5jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFZdEMsSUFBTSxNQUFNLEdBQVMscUJBQXFCLENBQUM7QUFDM0MsSUFBTSxTQUFTLEdBQU0seUJBQXlCLENBQUM7QUFDL0MsSUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUM7QUFFckMsZ0JBQVEsR0FBZ0I7SUFFakMsR0FBRyxFQUFFO1FBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUNuQixXQUFXLEVBQUUsZUFBZTtRQUM1QixJQUFJLEVBQUU7WUFDRiwrQkFBK0I7WUFDL0IsU0FBUztZQUNULFlBQVk7WUFDWixNQUFNO1NBQ1Q7UUFDRCxJQUFJLEVBQUUsd0VBSVosV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHNDQUl0RixXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFOQVM3RDtLQUNBO0lBRUQsS0FBSyxFQUFFO1FBQ0gsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztRQUNyQixXQUFXLEVBQUUsa0JBQWtCO1FBQy9CLElBQUksRUFBRTtZQUNGLGlDQUFpQztZQUNqQyxZQUFZO1lBQ1osU0FBUztZQUNULE1BQU07U0FDVDtRQUNELElBQUksRUFBRSw4RUFJWixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixD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 |
\ | No newline at end of file |