浏览代码

Add screenshot option to CLI

Gaël Métais 10 年之前
父节点
当前提交
dd1fd34865
共有 2 个文件被更改,包括 41 次插入7 次删除
  1. 40 7
      bin/cli.js
  2. 1 0
      package.json

+ 40 - 7
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 <url> <options>',
+        '',
+        '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 <pageUrl>\n');
+if (cli.input.length < 1) {
+    console.error('Incorrect parameters: url not provided');
+    process.exit(1);
+}
+
+var url = cli.input[0];
+
+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
+}
+
 
-var url = process.argv[2];
 
-(function execute(url) {
+(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);
+})(url, options);

+ 1 - 0
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",