UNPKG

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