decova-gotcha
Version:
It's my personal trial for automating daunting tasks
85 lines • 4.95 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.App = void 0;
require("reflect-metadata");
require("decova-dotnet");
const chalk_1 = __importDefault(require("chalk"));
const decova_environment_1 = require("decova-environment");
const figlet_1 = __importDefault(require("figlet"));
const ExecFromSheet_1 = require("./external-sheet/ExecFromSheet");
const LocalToolsDispatcher_1 = require("./local-tools-impl/LocalToolsDispatcher");
const LTool_IncrementPatch_1 = require("./local-tools-impl/LTool_IncrementPatch");
const decova_filesystem_1 = require("decova-filesystem");
const LTool_CheckGotchaLocalRepo_1 = require("./local-tools-impl/LTool_CheckGotchaLocalRepo");
const LTool_EditLaunchFile_1 = require("./local-tools-impl/LTool_EditLaunchFile");
const LTool_EditWalkthroughs_1_1 = require("./local-tools-impl/LTool_EditWalkthroughs.1");
const LTool_EditSnippets_1 = require("./local-tools-impl/LTool_EditSnippets");
const LTool_ManageTextSnippets_1 = require("./local-tools-impl/LTool_ManageTextSnippets");
const LTool_OpenTextSnippet_1 = require("./local-tools-impl/LTool_OpenTextSnippet");
const LTool_CommitAndPushGotchaData_1 = require("./local-tools-impl/LTool_CommitAndPushGotchaData");
const LTool_CopyVscodeFile_1 = require("./local-tools-impl/LTool_CopyVscodeFile");
const tsyringe_1 = require("tsyringe");
const pjson = require('../package.json');
class App {
constructor() {
this.srv_LocalToolsDispatcher = tsyringe_1.container.resolve(LocalToolsDispatcher_1.LocalToolsDispatcher);
}
ShowStartupInfo() {
console.log(chalk_1.default.cyanBright(figlet_1.default.textSync("Gtch`", { horizontalLayout: "default" })));
console.log(pjson.version);
console.log(`PID: ${process.pid}`);
console.log('........................................');
console.log('@' + decova_filesystem_1.DirectoryInfo.Current.FullName);
console.log('........................................');
}
RegisterLocalTools() {
this.srv_LocalToolsDispatcher.RegisterLocalTools(tsyringe_1.container.resolve(LTool_IncrementPatch_1.LTool_IncrementPatch), tsyringe_1.container.resolve(LTool_CheckGotchaLocalRepo_1.LTool_CheckOutGotchaLocalRepo), tsyringe_1.container.resolve(LTool_EditWalkthroughs_1_1.LTool_EditWalkthroughs), tsyringe_1.container.resolve(LTool_EditSnippets_1.LTool_EditSnippets), tsyringe_1.container.resolve(LTool_EditLaunchFile_1.LTool_EditLaunchFile), tsyringe_1.container.resolve(LTool_ManageTextSnippets_1.LTool_ManageTextSnippets), tsyringe_1.container.resolve(LTool_OpenTextSnippet_1.LTool_OpenTextSnippet), tsyringe_1.container.resolve(LTool_CommitAndPushGotchaData_1.LTool_CommitAndPushGotchaData), tsyringe_1.container.resolve(LTool_CopyVscodeFile_1.LTool_CopyVscodeFile));
}
DispatchAsync() {
return __awaiter(this, void 0, void 0, function* () {
const arg0 = decova_environment_1.Process.Current.Args.xFirstOrNull();
if (arg0) {
const nextArgs = String.xJoin('', decova_environment_1.Process.Current.Args.xSkip(1));
const isLocalTool = yield this.srv_LocalToolsDispatcher.TryAimToolAsync(arg0, nextArgs);
if (isLocalTool == false) {
new ExecFromSheet_1.ExecFromSheet().TakeControlAsync(decova_environment_1.Process.Current.Args.xFirstOrNull());
}
}
else {
new ExecFromSheet_1.ExecFromSheet().TakeControlAsync(decova_environment_1.Process.Current.Args.xFirstOrNull());
}
});
}
StartAsync() {
return __awaiter(this, void 0, void 0, function* () {
try {
this.ShowStartupInfo();
this.RegisterLocalTools();
yield this.DispatchAsync();
}
catch (err) {
console.error(err);
}
});
}
}
exports.App = App;
try {
new App().StartAsync();
}
catch (err) {
console.error(err);
}
//# sourceMappingURL=App.js.map