UNPKG

1.72 kBPlain TextView Raw
1#!/usr/bin/env node
2
3var path = require( 'path' );
4var coffee = require( 'coffee-script' );
5var CiaoScript = require( '../lib/CiaoScript' );
6var Runner = require( '../lib/Runner' );
7var Reporter = require( '../lib/Reporter' );
8var Documentor = require( '../lib/Documentor' );
9var Request = require( '../lib/Request' );
10var Settings = require( '../lib/Settings' );
11var Suite = require( '../lib/Suite' );
12var program = require('commander');
13
14program
15 .version('0.0.16')
16 .usage('[options] <file ...>')
17 .option('-s, --silent', 'disable reporters')
18 .option('-d, --documentation [dir]', 'generate documentation in output dir')
19 .parse(process.argv);
20
21var suite = new Suite( function( filename, suite )
22{
23 CiaoScript.load( filename, new Settings(), function( settings, parser )
24 {
25 var runner = new Runner( parser.sections.assert );
26
27 // Set Reporter
28 if( !program.silent ){
29 runner.listener( Reporter.standard );
30 // runner.listener( Reporter.debug );
31 }
32
33 // HTTP Request
34 var http = new Request();
35 http.listener( runner.complete );
36
37 // Documentation
38 if( program.documentation )
39 {
40 filename = path.resolve( filename );
41 var docTarget = filename.replace( process.cwd(), process.cwd() + '/' + program.documentation );
42 var docFile = docTarget.replace( '.coffee', '.md' );
43 var documentation = new Documentor( parser.sections.request[0].title, docFile );
44 runner.listener( documentation.documentTest );
45 http.listener( documentation.documentTransaction );
46 }
47
48 // Send the Request
49 http.transfer( settings.defaults );
50 });
51});
52
53// Run script(s)
54if( program.args[0] ){
55 suite.walk( program.args[0] );
56}
57else {
58 program.help();
59}
\No newline at end of file