1 | #!/usr/bin/env node
|
2 | try {
|
3 | require('coffee-script/register')
|
4 | } catch (err) {
|
5 | console.log("WARN: coffee script config files will not be supported without coffee-script/register");
|
6 | console.log(" -> run 'npm install coffee-script'");
|
7 | }
|
8 | try {
|
9 | require('babel-register')
|
10 | } catch (err) {
|
11 | console.log("WARN: es6 config files will not be supported without babel-register");
|
12 | console.log(" -> run 'npm install babel-register'");
|
13 | }
|
14 |
|
15 | var argv = require('yargs').
|
16 | usage('Usage: $0 [-s SITEMAP] [-i INCLUDES] [-e EXCLUDES]').
|
17 | describe('s', 'name of the sitemap in the sitemaps section of the configuration file').
|
18 | describe('i', 'only include specified source(s)').
|
19 | describe('e', 'add specified source(s) to excludes').
|
20 | help('h').
|
21 | array('i').
|
22 | array('e').
|
23 | alias('h', 'help').
|
24 | alias('s', 'sitemap').
|
25 | alias('i', 'include').
|
26 | alias('e', 'exclude').
|
27 | implies('i', 's').
|
28 | implies('e', 's').
|
29 | argv;
|
30 |
|
31 | // set environment
|
32 | process.env.NODE_ENV = process.env.NODE_ENV || 'production';
|
33 | var generateSitemaps = require('../lib/main').generateSitemaps;
|
34 | var overrides = {};
|
35 |
|
36 | var setupSitemapOverride = function() {
|
37 | if (!overrides.sitemaps) {
|
38 | overrides.sitemaps = {};
|
39 | }
|
40 | if (!overrides.sitemaps[argv.s]) {
|
41 | overrides.sitemaps[argv.s] = { };
|
42 | }
|
43 | if (!overrides.sitemaps[argv.s].sources) {
|
44 | overrides.sitemaps[argv.s].sources = { };
|
45 | }
|
46 | };
|
47 | var setIncludes = function() {
|
48 | if (!argv.i) {
|
49 | return;
|
50 | }
|
51 | setupSitemapOverride();
|
52 | overrides.sitemaps[argv.s].sources.includes = argv.i;
|
53 | };
|
54 | var addExcludes = function() {
|
55 | if (!argv.e) {
|
56 | return;
|
57 | }
|
58 | setupSitemapOverride();
|
59 | if (!overrides.sitemaps[argv.s].excludes) {
|
60 | overrides.sitemaps[argv.s].excludes = [];
|
61 | }
|
62 | overrides.sitemaps[argv.s].sources.excludes.apply('push', argv.e);
|
63 | };
|
64 |
|
65 | setIncludes();
|
66 | addExcludes();
|
67 |
|
68 | console.log("OVERRIDES: ", overrides);
|
69 |
|
70 | generateSitemaps(overrides, function(err) {
|
71 | if (err) {
|
72 | process.exit(1);
|
73 | } else {
|
74 | process.exit(0);
|
75 | }
|
76 | });
|