1 | #!/usr/bin/env node
|
2 |
|
3 | // Load modules
|
4 |
|
5 | var Fs = require('fs');
|
6 | var Yargs = require('yargs');
|
7 | var Alce = require('alce');
|
8 | var Confidence = require('../');
|
9 |
|
10 |
|
11 | // Declare internals
|
12 |
|
13 | var internals = {};
|
14 |
|
15 |
|
16 | internals.argv = Yargs.usage('Usage: $0 -c config.json [--filter.criterion=value]')
|
17 | .demand(['c'])
|
18 | .argv;
|
19 |
|
20 |
|
21 | internals.getConfig = function () {
|
22 |
|
23 | var config = null;
|
24 | var configPath = internals.argv.c[0] !== '/' ? process.cwd() + '/' + internals.argv.c : internals.argv.c;
|
25 |
|
26 | try {
|
27 | config = Alce.parse(Fs.readFileSync(configPath));
|
28 | }
|
29 | catch (err) {
|
30 | console.log('Failed loading configuration file: ' + internals.argv.c + ' (' + err.message + ')');
|
31 | process.exit(1);
|
32 | }
|
33 |
|
34 | return config;
|
35 | }
|
36 |
|
37 |
|
38 | internals.generate = function () {
|
39 |
|
40 | var config = internals.getConfig();
|
41 | var store = new Confidence.Store(config);
|
42 | var set = store.get('/', internals.argv.filter);
|
43 |
|
44 | if (!set) {
|
45 | process.stderr.write('Failed to generate document');
|
46 | }
|
47 |
|
48 | process.stdout.write(JSON.stringify(set, null, 4));
|
49 | };
|
50 |
|
51 | internals.generate();
|