From dd1fd3486597cbaa7dec1c9f819a3add28b26daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Fri, 6 Feb 2015 15:50:15 +0100 Subject: [PATCH] Add screenshot option to CLI --- bin/cli.js | 47 ++++++++++++++++++++++++++++++++++++++++------- package.json | 1 + 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 6d815cf..71c7174 100644 --- a/bin/cli.js +++ b/bin/cli.js @@ -1,22 +1,55 @@ #!/usr/bin/env node var debug = require('debug')('ylt:cli'); +var meow = require('meow'); +var path = require('path'); var ylt = require('../lib/index'); +var cli = meow({ + help: [ + 'Usage', + ' yellowlabtools ', + '', + 'Options:', + ' --screenshot Will take a screenshot and use this value as the output path. It needs to end with ".png".', + '' + ].join('\n'), + pkg: '../package.json' +}); + + + // Check parameters -if (process.argv.length !== 3) { - console.error('Incorrect parameters'); - console.error('\nUsage: ylt \n'); +if (cli.input.length < 1) { + console.error('Incorrect parameters: url not provided'); process.exit(1); } -var url = process.argv[2]; +var url = cli.input[0]; -(function execute(url) { +var options = {}; + +// Screenshot option +var screenshot = cli.flags.screenshot; +if (screenshot && (typeof screenshot !== 'string' || screenshot.toLowerCase().indexOf('.png', screenshot.length - 4) === -1)) { + console.error('Incorrect parameters: screenshot must be a path that ends with ".png"'); + process.exit(1); +} +if (screenshot) { + if (path.resolve(screenshot) !== path.normalize(screenshot)) { + // It is not an absolute path, so it is relative to the current command-line directory + screenshot = path.join(process.cwd(), screenshot); + } + options.screenshot = cli.flags.screenshot +} + + + +(function execute(url, options) { 'use strict'; - ylt(url). + ylt(url, options). then(function(data) { @@ -32,4 +65,4 @@ var url = process.argv[2]; debug('Test launched...'); -})(url); \ No newline at end of file +})(url, options); \ No newline at end of file diff --git a/package.json b/package.json index 9c0e743..6b29c50 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "debug": "~2.1.0", "express": "~4.10.6", "lwip": "0.0.6", + "meow": "^3.0.0", "phantomas": "1.9.0", "ps-node": "0.0.3", "q": "~1.1.2",