UNPKG

10.4 kBJavaScriptView Raw
1"use strict";
2var _ = require("../lodash.custom");
3var common = "../opts/common.json";
4var runcommon = "../opts/run-common.json";
5var globalcommon = "../opts/global-common.json";
6exports.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};
67function 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}
76function 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}
98exports.twoColFromJson = twoColFromJson;
99//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNvbW1hbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS5jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFZdEMsSUFBTSxNQUFNLEdBQVMscUJBQXFCLENBQUM7QUFDM0MsSUFBTSxTQUFTLEdBQU0seUJBQXlCLENBQUM7QUFDL0MsSUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUM7QUFFckMsUUFBQSxRQUFRLEdBQWdCO0lBRWpDLEdBQUcsRUFBRTtRQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDbkIsV0FBVyxFQUFFLGVBQWU7UUFDNUIsSUFBSSxFQUFFO1lBQ0YsK0JBQStCO1lBQy9CLFNBQVM7WUFDVCxZQUFZO1lBQ1osTUFBTTtTQUNUO1FBQ0QsSUFBSSxFQUFFLHdFQUlaLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsK0JBQStCLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxzQ0FJdEYsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxxTkFTN0Q7S0FDQTtJQUVELEtBQUssRUFBRTtRQUNILEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDckIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixJQUFJLEVBQUU7WUFDRixpQ0FBaUM7WUFDakMsWUFBWTtZQUNaLFNBQVM7WUFDVCxNQUFNO1NBQ1Q7UUFDRCxJQUFJLEVBQUUsOEVBSVosY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyx5QkFB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
\No newline at end of file