This is an automated email from the ASF dual-hosted git repository.

tardieu pushed a commit to branch file-output
in repository 
https://gitbox.apache.org/repos/asf/incubator-openwhisk-composer.git

commit ab730334809835363b060e83d3a3882d48b1db64
Author: Olivier Tardieu <[email protected]>
AuthorDate: Wed Mar 27 14:11:58 2019 -0400

    Add compose --file and -o flags
---
 bin/compose.js | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/bin/compose.js b/bin/compose.js
index e426d13..a9cd01a 100755
--- a/bin/compose.js
+++ b/bin/compose.js
@@ -18,14 +18,15 @@
 
 const composer = require('../composer')
 const conductor = require('../conductor')
+const fs = require('fs')
 const json = require('../package.json')
 const minimist = require('minimist')
 const Module = require('module')
 const path = require('path')
 
 const argv = minimist(process.argv.slice(2), {
-  string: ['debug'],
-  boolean: ['version', 'ast', 'js'],
+  string: ['debug', 'o'],
+  boolean: ['version', 'ast', 'js', 'file'],
   alias: { version: 'v' }
 })
 
@@ -53,7 +54,9 @@ if (argv._.length !== 1 || path.extname(argv._[0]) !== '.js') 
{
   console.error('  compose composition.js [flags]')
   console.error('Flags:')
   console.error('  --ast                  only output the ast for the 
composition')
+  console.error('  --file                 write output to .json file with path 
and name matching input file')
   console.error('  --js                   output the conductor action code for 
the composition')
+  console.error('  -o FILE                write output to FILE')
   console.error('  -v, --version          output the composer version')
   console.error('  --debug LIST           comma-separated list of debug flags 
(when using --js flag)')
   process.exit(1)
@@ -72,5 +75,13 @@ if (argv.js) {
   console.log(conductor.generate(composition, argv.debug).action.exec.code)
 } else {
   if (argv.ast) composition = composition.ast
-  console.log(JSON.stringify(composition, null, 4))
+  composition = JSON.stringify(composition, null, 4)
+  if (argv.o) {
+    fs.writeFileSync(argv.o, composition.concat('\n'), { encoding: 'utf8' })
+  } else if (argv.file) {
+    const { dir, name } = path.parse(argv._[0])
+    fs.writeFileSync(path.format({ dir, name, ext: '.json' }), 
composition.concat('\n'), { encoding: 'utf8' })
+  } else {
+    console.log(composition)
+  }
 }

Reply via email to