12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/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".',
- ' --js-deep-analysis When activated, the javascriptExecutionTree will contain sub-requests.',
- ''
- ].join('\n'),
- pkg: '../package.json'
- });
- // Check parameters
- 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;
- }
- // Deep JS analysis option
- if (cli.flags.jsDeepAnalysis === true || cli.flags.jsDeepAnalysis === 'true') {
- options.jsDeepAnalysis = true;
- }
- (function execute(url, options) {
- 'use strict';
- ylt(url, options).
- then(function(data) {
- debug('Success');
- console.log(JSON.stringify(data, null, 2));
- }).fail(function(err) {
-
- debug('Test failed for %s', url);
- console.error(err);
-
- });
- debug('Test launched...');
- })(url, options);
|