| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- 'use strict';
 
- var fs = require('fs');
 
- var RuleCompiler = require('./rule-compiler.js');
 
- if (process.argv.length < 3) {
 
- 	console.log('Usage: node cli.js <rules script>');
 
- 	process.exit(1);
 
- }
 
- var rules = [];
 
- var caps = {};
 
- var tags = {};
 
- var err = RuleCompiler.compile(fs.readFileSync(process.argv[2]).toString(),rules,caps,tags);
 
- if (err) {
 
- 	console.error('ERROR parsing '+process.argv[2]+' line '+err[0]+' column '+err[1]+': '+err[2]);
 
- 	process.exit(1);
 
- } else {
 
- 	let capsArray = [];
 
- 	let capabilitiesByName = {};
 
- 	for(let n in caps) {
 
- 		capsArray.push(caps[n]);
 
- 		capabilitiesByName[n] = caps[n].id;
 
- 	}
 
- 	let tagsArray = [];
 
- 	for(let n in tags) {
 
- 		let t = tags[n];
 
- 		let dfl = t['default'];
 
- 		tagsArray.push({
 
- 			'id': t.id,
 
- 			'default': (((dfl)||(dfl === 0)) ? dfl : null)
 
- 		});
 
- 	}
 
- 	console.log(JSON.stringify({
 
- 		config: {
 
- 			rules: rules,
 
- 			capabilities: capsArray,
 
- 			tags: tagsArray
 
- 		},
 
- 		capabilitiesByName: capabilitiesByName,
 
- 		tagsByName: tags
 
- 	},null,1));
 
- 	process.exit(0);
 
- }
 
 
  |