Merge pull request #1907 from gpazo/fixent-install
[xtuple] / scripts / explode_manifest.js
1 #!/usr/bin/env node
2
3 /*jshint node:true, indent:2, curly:false, eqeqeq:true, immed:true, latedef:true, newcap:true, noarg:true,
4 regexp:true, undef:true, strict:true, trailing:true, white:true */
5 /*global _:true */
6
7 //
8 // This file really just parses the arguments, and sends the real work
9 // off to scripts/lib/build_all.js.
10 //
11
12 (function () {
13   "use strict";
14
15   var fs = require("fs"),
16     program = require("commander"),
17     path = require("path"),
18     explodeManifest = require("./lib/util/process_manifest").explodeManifest;
19
20   program
21     .option('-m, --manifest [/path/to/manifest.js]', 'Location of manifest file.')
22     .option('-n, --name [inventory_upgrade.sql]', 'Name of destination file.')
23     .parse(process.argv);
24
25   var manifestFilename = path.resolve(process.cwd(), program.manifest);
26
27   explodeManifest({manifestFilename: manifestFilename}, function (err, contents) {
28     var outputFile;
29     if (err) {
30       console.log("error: ", err);
31       return;
32     }
33     if (!fs.existsSync(path.join(__dirname, "output"))) {
34       fs.mkdirSync(path.join(__dirname, "output"));
35     }
36
37     outputFile = path.join(__dirname, "output", program.name);
38     fs.writeFile(outputFile, contents, function (err, res) {
39       if (err) {
40         console.log("error: ", err);
41         return;
42       }
43       console.log("File successfully written as ", outputFile);
44     });
45   });
46
47 }());