UNPKG

@iotize/cli

Version:
157 lines 7.06 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); require("@iotize/testing-grammar.js/ext"); const clime_1 = require("clime"); const fs_1 = require("fs"); const operators_1 = require("rxjs/operators"); const tap_config_parser_1 = require("src/lib/tap-config-parser"); const ui_1 = require("src/ui"); const device_1 = require("../../../options/device"); const file_exists_1 = require("../../../validators/file-exists"); const config_1 = require("./../../../../config"); const path_1 = require("path"); class MyOptions extends device_1.DeviceOptions { } __decorate([ clime_1.option({ flag: 'f', description: 'Iotize script file to run (Allowed file type: .izsc, .tapconfig.json, .iotz)', required: false, default: global.getConfig('default.configScript', undefined), // configKey: 'default.configScript', // TODO create annotation validator: new file_exists_1.FileExists() }), __metadata("design:type", String) ], MyOptions.prototype, "file", void 0); __decorate([ clime_1.option({ flag: 't', description: 'Configuration template to use', required: false, validator: new file_exists_1.FileExists() }), __metadata("design:type", String) ], MyOptions.prototype, "template", void 0); exports.MyOptions = MyOptions; let default_1 = class default_1 extends clime_1.Command { execute(options) { return __awaiter(this, void 0, void 0, function* () { let filePath; let isUsingTemplate = false; if (options.file) { filePath = options.file; } else { if (options.template) { filePath = path_1.resolve(config_1.RESOURCE_PATH, 'tap-configurations'); } else { ui_1.display.infonl(`You did not pass any configuration file. Next time use option '--file' to use a custom configuration file. `); filePath = yield ui_1.input.selectConfigFile(); } isUsingTemplate = true; } let fileContent = fs_1.readFileSync(filePath).toString(); let tap = yield options.getDevice(true, false, true); if (filePath.endsWith('.izsc')) { yield this.showScriptLoader(tap.configureFromScript(fileContent)); } else { let tapConfig = tap_config_parser_1.parseTapConfig(fileContent); if (isUsingTemplate) { // display.table(tapConfig.config.tap.wifi); // if (await input.confirm(`Do you want to change`)) } yield this.showConfigLoader(tap.applyConfig(tapConfig)); } // let scriptRunner = container.get<ScriptRunnerProvider>(TYPES.ScriptRunnerProvider)(tap) // let loader = new TapScriptConfiguratorLoader( // fileContent, // scriptRunner // ); // loader // .configure(tap) // .subscribe({ // next: (event: any) => { // console.log(event); // }, // complete: async () => { // await tap.disconnect(); // display.success(`Script execution DONE!`); // process.exit(0); // }, // error: async (err: Error) => { // display.error(`${err.toString()}`) // await tap.disconnect(); // process.exit((err as any).code || 1); // } // }); }); } showScriptLoader(obs) { return __awaiter(this, void 0, void 0, function* () { obs = obs.pipe(operators_1.tap({ // next: (event) => { // console.warn(event); // display.infonl(`${event}`); // }, complete: () => { ui_1.display.success(`Configuration script executed successfully`); } }), operators_1.share()); // let progressBar = ProgressBarBuilder.fromObservable( // obs.pipe( // map((event: ConfigureFromScriptEvent) => { // return event.progress // }) // ) // ); // progressBar.render(); yield obs.toPromise(); }); } showConfigLoader(obs) { return __awaiter(this, void 0, void 0, function* () { obs = obs.pipe(operators_1.tap({ next: event => { ui_1.display.infonl(`${event.message}`); }, complete: () => { ui_1.display.success(`Configuration succesful!`); } }), operators_1.share()); yield obs.toPromise(); }); } }; __decorate([ clime_1.metadata, __metadata("design:type", Function), __metadata("design:paramtypes", [MyOptions]), __metadata("design:returntype", Promise) ], default_1.prototype, "execute", null); default_1 = __decorate([ clime_1.command({ description: 'Apply configuration on your Tap' }) ], default_1); exports.default = default_1; //# sourceMappingURL=apply.js.map