From 43d17debee20bfc7ee535fd643df0538f8bee9f8 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Wed, 22 Sep 2021 15:29:21 +0200 Subject: [PATCH] fix(CLI): Ensure to write outputs with modern logs on `sls info` --- lib/cli/write-service-outputs.js | 14 ++++++++++++++ lib/plugins/aws/deploy/index.js | 14 +++----------- lib/plugins/aws/info/index.js | 7 +++++++ 3 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 lib/cli/write-service-outputs.js diff --git a/lib/cli/write-service-outputs.js b/lib/cli/write-service-outputs.js new file mode 100644 index 000000000..56b988683 --- /dev/null +++ b/lib/cli/write-service-outputs.js @@ -0,0 +1,14 @@ +'use strict'; + +const { writeText, style } = require('@serverless/utils/log'); + +module.exports = (serviceOutputs) => { + writeText(); + for (const [section, entries] of serviceOutputs) { + if (typeof entries === 'string') { + writeText(`${style.aside(`${section}:`)} ${entries}`); + } else { + writeText(`${style.aside(`${section}:\n`)} ${entries.join('\n ')}`); + } + } +}; diff --git a/lib/plugins/aws/deploy/index.js b/lib/plugins/aws/deploy/index.js index e40dce8e3..ff45fa16f 100644 --- a/lib/plugins/aws/deploy/index.js +++ b/lib/plugins/aws/deploy/index.js @@ -1,5 +1,6 @@ 'use strict'; +const writeServiceOutputs = require('../../../cli/write-service-outputs'); const extendedValidate = require('./lib/extendedValidate'); const setBucketName = require('../lib/setBucketName'); const checkForChanges = require('./lib/checkForChanges'); @@ -11,7 +12,7 @@ const validateTemplate = require('./lib/validateTemplate'); const updateStack = require('../lib/updateStack'); const existsDeploymentBucket = require('./lib/existsDeploymentBucket'); const path = require('path'); -const { style, log, writeText, progress } = require('@serverless/utils/log'); +const { style, log, progress } = require('@serverless/utils/log'); const memoize = require('memoizee'); const mainProgress = progress.get('main'); @@ -188,16 +189,7 @@ class AwsDeploy { )}s)` )}` ); - if (this.serverless.serviceOutputs) { - writeText(); - for (const [section, entries] of this.serverless.serviceOutputs) { - if (typeof entries === 'string') { - writeText(`${style.aside(`${section}:`)} ${entries}`); - } else { - writeText(`${style.aside(`${section}:\n`)} ${entries.join('\n ')}`); - } - } - } + if (this.serverless.serviceOutputs) writeServiceOutputs(this.serverless.serviceOutputs); }, }; } diff --git a/lib/plugins/aws/info/index.js b/lib/plugins/aws/info/index.js index a518961c0..eac8ba9e2 100644 --- a/lib/plugins/aws/info/index.js +++ b/lib/plugins/aws/info/index.js @@ -2,6 +2,7 @@ const BbPromise = require('bluebird'); const { progress } = require('@serverless/utils/log'); +const writeServiceOutputs = require('../../../cli/write-service-outputs'); const validate = require('../lib/validate'); const getStackInfo = require('./getStackInfo'); const getResourceCount = require('./getResourceCount'); @@ -68,6 +69,12 @@ class AwsInfo { 'aws:info:displayStackOutputs': async () => BbPromise.bind(this).then(this.displayStackOutputs), + + 'finalize': () => { + if (this.serverless.processedInput.commands.join(' ') !== 'info') return; + + if (this.serverless.serviceOutputs) writeServiceOutputs(this.serverless.serviceOutputs); + }, }; } }