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);
- }
|