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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNvbW1hbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS5jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFZdEMsSUFBTSxNQUFNLEdBQVMscUJBQXFCLENBQUM7QUFDM0MsSUFBTSxTQUFTLEdBQU0seUJBQXlCLENBQUM7QUFDL0MsSUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUM7QUFFckMsUUFBQSxRQUFRLEdBQWdCO0lBRWpDLEdBQUcsRUFBRTtRQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDbkIsV0FBVyxFQUFFLGVBQWU7UUFDNUIsSUFBSSxFQUFFO1lBQ0YsK0JBQStCO1lBQy9CLFNBQVM7WUFDVCxZQUFZO1lBQ1osTUFBTTtTQUNUO1FBQ0QsSUFBSSxFQUFFLHdFQUlaLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsK0JBQStCLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxzQ0FJdEYsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxxTkFTN0Q7S0FDQTtJQUVELEtBQUssRUFBRTtRQUNILEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDckIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixJQUFJLEVBQUU7WUFDRixpQ0FBaUM7WUFDakMsWUFBWTtZQUNaLFNBQVM7WUFDVCxNQUFNO1NBQ1Q7UUFDRCxJQUFJLEVBQUUsOEVBSVosY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyx5QkFB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 |
\ | No newline at end of file |