diff --git a/docs/reference/commands.md b/docs/reference/commands.md index 1e4153688f..92a9ede68a 100644 --- a/docs/reference/commands.md +++ b/docs/reference/commands.md @@ -207,6 +207,16 @@ Examples: | `--skip-tests` | | boolean | Disable running the tests. | `--test-names` | `-tn` | array:string | Filter the tests to run by test name across all modules (leave unset to run all tests). Accepts glob patterns (e.g. integ* would run both 'integ' and 'integration'). +### garden eysi + +Meet our CTO. + +Just try it. + +##### Usage + + garden eysi + ### garden exec Executes a command (such as an interactive shell) in a running service. diff --git a/garden-service/src/commands/commands.ts b/garden-service/src/commands/commands.ts index 4dcfbe35b0..3619ab4785 100644 --- a/garden-service/src/commands/commands.ts +++ b/garden-service/src/commands/commands.ts @@ -29,6 +29,7 @@ import { ServeCommand } from "./serve" import { OptionsCommand } from "./options" import { ConfigCommand } from "./config/config" import { PluginsCommand } from "./plugins" +import { EysiCommand } from "./eysi" export const coreCommands: Command[] = [ new BuildCommand(), @@ -36,6 +37,7 @@ export const coreCommands: Command[] = [ new DeleteCommand(), new DeployCommand(), new DevCommand(), + new EysiCommand(), new ExecCommand(), new GetCommand(), new InitCommand(), diff --git a/garden-service/src/commands/eysi.ts b/garden-service/src/commands/eysi.ts new file mode 100644 index 0000000000..7bd8c811dc --- /dev/null +++ b/garden-service/src/commands/eysi.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2018 Garden Technologies, Inc. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import { + Command, + CommandResult, +} from "./base" +import dedent = require("dedent") +import { readFile } from "fs-extra" +import { STATIC_DIR } from "../constants" +import { join } from "path" +import execa = require("execa") + +export class EysiCommand extends Command { + name = "eysi" + help = "Meet our CTO." + + description = dedent` + Just try it. + ` + + loggerType: "basic" + + async action(): Promise { + const eysi = (await readFile(join(STATIC_DIR, "eysi.txt"))).toString() + console.log(eysi) + + try { + // Close enough. + await execa("say", ["Hello", "I", "am", "Aysey"]) + } catch (_) { } + + return { result: { eysi } } + } +} diff --git a/garden-service/static/eysi.txt b/garden-service/static/eysi.txt new file mode 100644 index 0000000000..0bc3b61ed5 --- /dev/null +++ b/garden-service/static/eysi.txt @@ -0,0 +1,66 @@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQBDkas\iTiv7JnnyZy}ZqNQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qqf*=;~~,,~_,,,,,,,,,:_~;;rJKQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QKyz+;~~~;~~~;~~_,,,,''''.````.',~rvoqWQQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQQ@@QNy|;~~~:_,,:_~~~;;;;;;~~_,,,,''.....``.'',:!tB@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qy^>oz^~,,''',''.''''''',,_~~;;;;;~~~~~~~,,''......'';\N@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qk^''''.`...`....`````` ``.',,~~~;;;;~~~~~;;~~,,,''''',,~}8@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qi~.```` ` ``',~~~,'``````````.',~_,'',:~~~__~~~;;~_,''.'';iR@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&S^:. `.,;*vInzL+;_'''`````..'',:_,,'',,,,,,,_~;~~~~:,'.'+A@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q7!'.` ``';|jkbDDDKkSfzi*r;~,'.`.'''''''...'''''',''_~~;~_,,'.'?g@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@U;,'``` `,+{EKRg8NN##N8%DqXo}7i=;:,''''..```.```.''''''''',,,~,,''~P@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@Q5;``.` `,>jkd%g8N#&BBQ#8WWW%DKqXaY\*^~_,''`````````````..'''''',,'''~j@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@QNL'``` .~zPqD8##N##N#NNNNNNWgg%%DDb6wjzi|7{jkDDdZ}c\L\|<<||<|YSXXXXUqKdDDKkddbKkyoki~;+LIkK@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@dXwwXSsjmyI=,_!r*<+r!!;~~~~;~:_~~,,,,,,,~!=|ii|=*zymEhkUU6KDDqqDdE}jEKYL<^<}UQ@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@DmZof7JZj*,~;;^^!=+^=^;;;!!^;~~~;;~_~,,,~;=L\c|^=\Y5wEkXXUKKUXqPtYEEqo{yi7X&@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@XojfJzSI;_~~~~~~~~~~~;;;;^*|||<^+^r!;;;~~;+<|L|+|T^ii;,'.,;*?*^;?J\nn=i7nySEwSkQNNQ@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@ajyju}jynT\YySUbKkoyjffjj}xJzc|*+^;^^+|zfSSojzizy7nz<*<=r+^+=+^^r+^^^^^!+=<<**?|?<**?|c|=<<+>*||\7zxjEADQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@NDRdDdAXPKqka}T**<||**<<+^^^!^^^^^^=+<=<||T|**L|<=*>*|ii\czfSAdDQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@DDbKKqXmEKqEmf7L|=*?|<^<**=^^+==>+^=><=<=?|||***>*|<||>><<=++>=+><<**|Li?|?*+<|<*=<<+++***???\iLii\iLc|?Li\ujoEUdDDmZwkXUAqXk@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@WmwoojjydKKUXXPSjuJtzzzci*+==+++=+<*||**|vi|Lic|*L||*LJjam6KdDUfySwPkUUko@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@QjyJ}jyPDdb6XXPma5jjxtz7i*====><=r+**|L|LLi7zzL|c7cii7fawXqKDdjIfoaSwkXwU@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file