UNPKG

2.63 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var fs = require("fs");
4var path = require("path");
5var docopt_1 = require("docopt");
6var utils = require("./lib/utils");
7var package_1 = require("./lib/package");
8var logger_1 = require("./lib/logger");
9var token_1 = require("./lib/token");
10var dir = fs.readdirSync(path.join(__dirname, "./commands"))
11 .map(function (d) { return d.split(".")[0]; })
12 .filter(function (d) { return d !== "command"; });
13var commands = {};
14var doc = "\nUsage:\n";
15for (var ii in dir) {
16 var d = dir[ii];
17 commands[d] = require(path.join(__dirname, "./commands/" + d));
18 doc = doc + " " + process.title + " " + commands[d].doc + "\n";
19 logger_1.instance.info("found " + d + ": " + commands[d].doc);
20}
21doc = doc + "\nOptions:\n -h --help Show this screen.\n -v --version Show version.\n";
22var packageJson = utils.loadJson(path.join(__dirname, "../package.json"));
23var options = docopt_1.docopt(doc, { version: packageJson.version });
24var messagePackageValidationError = function (pkgValidation) {
25 if (pkgValidation.packageMalformed) {
26 logger_1.instance.error("Cloudstitch package defenition appears to be missing critical information or is malformed check please check your cloudstitch.json");
27 }
28 else if (pkgValidation.notFound) {
29 logger_1.instance.error("Cloudstitch package defenition could not be found the the current or parent directories please create a cloudstitch.json file");
30 }
31 process.exit(1);
32};
33var messageLoginError = function () {
34 logger_1.instance.error("You don't appear to be logged in, please run `cloudstitch login`.");
35 process.exit(1);
36};
37Object.keys(commands).forEach(function (key) {
38 if (typeof options[key] === "boolean" && options[key]) {
39 var command = commands[key];
40 if (command.requiresPkg) {
41 var thisPkgValidation = package_1.instance.isInvalid();
42 if (options["<folder>"]) {
43 var folderPackage = new package_1.Package(options["<folder>"]), letValidation = folderPackage.isInvalid();
44 if (letValidation) {
45 messagePackageValidationError(letValidation);
46 }
47 }
48 else if (thisPkgValidation) {
49 messagePackageValidationError(thisPkgValidation);
50 }
51 }
52 var runCommand = function () {
53 commands[key].run(options);
54 };
55 if (command.requiresLogin) {
56 token_1.default().then(runCommand, messageLoginError);
57 }
58 else {
59 runCommand();
60 }
61 }
62});