@forge/cli

12.9.012.10.0-next.4
out/command-line/register-show-commands.js
~out/command-line/register-show-commands.jsModified
+48−29
Index: package/out/command-line/register-show-commands.js
===================================================================
--- package/out/command-line/register-show-commands.js
+++ package/out/command-line/register-show-commands.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.registerCommands = void 0;
+exports.registerCommands = exports.ShowCommandError = void 0;
 const cli_shared_1 = require("@forge/cli-shared");
 function readServicesFromConfig(manifest) {
     if (!manifest || !manifest.services) {
         return [];
@@ -9,8 +9,9 @@
     return manifest.services.map((service) => service.key);
 }
 class ShowCommandError extends Error {
 }
+exports.ShowCommandError = ShowCommandError;
 function showCommandError(ui, message) {
     ui.error(new ShowCommandError(message));
     ui.emptyLine();
 }
@@ -26,11 +27,14 @@
         .requireAppId()
         .environmentOption()
         .option('-s, --service [service]', cli_shared_1.Text.show.services.cmd.serviceKeyOption)
         .option('-w, --watch', cli_shared_1.Text.show.services.cmd.watchOption)
+        .option('--json', cli_shared_1.Text.show.services.cmd.jsonOption, false)
         .shardOption()
-        .action(async ({ service, environment, shard, watch }) => {
-        ui.info(cli_shared_1.Text.show.services.overview);
+        .action(async ({ service, environment, shard, watch, json }) => {
+        if (!json) {
+            ui.info(cli_shared_1.Text.show.services.overview);
+        }
         environment = (0, cli_shared_1.optionToEnvironment)(environment);
         const serviceNames = service ? [service] : readServicesFromConfig(await configFile.readConfig());
         const getServices = async () => {
             const { services } = await containerCommand.getContainerServiceDetails(environment, serviceNames, shard);
@@ -73,13 +77,20 @@
             });
         }
         else {
             const services = await getServices();
-            ui.table(headings, services, {
-                preMessage: service
-                    ? cli_shared_1.Text.show.services.specificService(service, environment)
-                    : cli_shared_1.Text.show.services.allServices(environment)
-            });
+            if (!json) {
+                ui.table(headings, services, {
+                    preMessage: service
+                        ? cli_shared_1.Text.show.services.specificService(service, environment)
+                        : cli_shared_1.Text.show.services.allServices(environment)
+                });
+            }
+            else {
+                if (services) {
+                    ui.info(JSON.stringify(services, null, 2));
+                }
+            }
         }
         ui.emptyLine();
     });
 };
@@ -91,11 +102,14 @@
         .option('-s, --service <service>', cli_shared_1.Text.show.containers.cmd.serviceKeyOption)
         .option('-c, --container [container]', cli_shared_1.Text.show.containers.cmd.containerKeyOption)
         .requireAppId()
         .environmentOption()
+        .option('--json', cli_shared_1.Text.show.containers.cmd.jsonOption, false)
         .shardOption()
-        .action(async ({ environment, service, container, shard }) => {
-        ui.info(cli_shared_1.Text.show.containers.overview);
+        .action(async ({ environment, service, container, shard, json }) => {
+        if (!json) {
+            ui.info(cli_shared_1.Text.show.containers.overview);
+        }
         environment = (0, cli_shared_1.optionToEnvironment)(environment);
         if (!service) {
             ui.emptyLine();
             const serviceNames = readServicesFromConfig(await configFile.readConfig());
@@ -123,30 +137,35 @@
                 return;
             }
             containers = specifiedService.containers.filter((ct) => ct.key === container);
         }
-        for (const ct of containers) {
-            if (!ct.instances || !ct.instances.length) {
-                ui.info(cli_shared_1.Text.show.containers.noInstancesFoundForContainer(ct.key, service, environment));
+        if (json) {
+            ui.info(JSON.stringify(containers, null, 2));
+        }
+        else {
+            for (const ct of containers) {
+                if (!ct.instances || !ct.instances.length) {
+                    ui.info(cli_shared_1.Text.show.containers.noInstancesFoundForContainer(ct.key, service, environment));
+                    ui.emptyLine();
+                    continue;
+                }
                 ui.emptyLine();
-                continue;
+                ui.table([
+                    ['id', 'ID'],
+                    ['health', 'Health'],
+                    ['status', 'Status'],
+                    ['imageURI', 'ImageURI'],
+                    ['createdAt', 'Created at']
+                ], ct.instances.map((c) => ({
+                    id: c.id,
+                    health: c.healthStatus,
+                    status: c.containerStatus,
+                    imageURI: c.imageURI,
+                    createdAt: c.createdAt
+                })), { preMessage: cli_shared_1.Text.show.containers.specificContainer(ct.key) });
             }
-            ui.emptyLine();
-            ui.table([
-                ['id', 'ID'],
-                ['health', 'Health'],
-                ['status', 'Status'],
-                ['imageURI', 'ImageURI'],
-                ['createdAt', 'Created at']
-            ], ct.instances.map((c) => ({
-                id: c.id,
-                health: c.healthStatus,
-                status: c.containerStatus,
-                imageURI: c.imageURI,
-                createdAt: c.createdAt
-            })), { preMessage: cli_shared_1.Text.show.containers.specificContainer(ct.key) });
-            ui.emptyLine();
         }
+        ui.emptyLine();
     });
 };
 const SHOW_COMMAND_NAME = 'show';
 const registerCommands = (deps) => {