turbodepot-node
Version:
General purpose multi storage library (ORM, Logs, Users, Files, Objects)
1 lines • 2.71 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TerminalManager=void 0;var turbocommons_ts_1=require("turbocommons-ts"),FilesManager_1=require("./FilesManager"),TerminalManager=function(){function r(r,t){if(void 0===r&&(r=""),void 0===t&&(t=!0),this._linkSystemWorkDir=!0,this.baseCommand="",this.workDirHistory=[],!turbocommons_ts_1.StringUtils.isString(r))throw new Error("workDir must be a string");this.path=require("path"),this.execSync=require("child_process").execSync,this._linkSystemWorkDir=t,r=""===r?this.path.resolve("./"):this.path.resolve(r),this.filesManager=new FilesManager_1.FilesManager(r),this._linkSystemWorkDir&&process.chdir(r),this.workDirHistory=[r]}return r.prototype.setWorkDir=function(r){if(!this.filesManager.isDirectory(r))throw new Error("Invalid path: "+r);return r=this.path.resolve(r),this._linkSystemWorkDir&&process.chdir(r),this.filesManager=new FilesManager_1.FilesManager(r),this.workDirHistory.push(r),r},r.prototype.getWorkDir=function(){return this.workDirHistory[this.workDirHistory.length-1]},r.prototype.setPreviousWorkDir=function(){if(this.workDirHistory.length<=1)throw new Error("Requesting previous work dir but none available");return this._linkSystemWorkDir&&process.chdir(this.workDirHistory[this.workDirHistory.length-1]),this.workDirHistory.pop(),this.getWorkDir()},r.prototype.setInitialWorkDir=function(){return this.workDirHistory=[this.workDirHistory[0]],this._linkSystemWorkDir&&process.chdir(this.workDirHistory[0]),this.workDirHistory[0]},r.prototype.createTempDirectory=function(r,t,i){void 0===t&&(t=!0),void 0===i&&(i=!0);var o=this.filesManager.createTempDirectory(r,i);if("boolean"!=typeof t)throw new Error("setWorkDirToIt must be a boolean value");return t&&this.setWorkDir(o),o},r.prototype.exec=function(r,t,i){if(void 0===t&&(t=!1),void 0===i&&(i={}),!turbocommons_ts_1.StringUtils.isString(r))throw new Error("command must be a string");var o="",e=!1,s=turbocommons_ts_1.StringUtils.isEmpty(this.baseCommand)?r:this.baseCommand+" "+r;if(turbocommons_ts_1.StringUtils.isEmpty(s))throw new Error("no command to execute");var n=function(r){var t="";return r.stderr&&!turbocommons_ts_1.StringUtils.isEmpty(r.stderr.toString())&&(t=r.stderr.toString()),r.stdout&&!turbocommons_ts_1.StringUtils.isEmpty(r.stdout.toString())&&(t+="\n\n"+r.stdout.toString()),turbocommons_ts_1.StringUtils.isEmpty(t)&&(t=r.toString()),t},a={};for(var h in process.env)a[h]=process.env[h];for(var h in i)a[h]=i[h];if(t)try{o=this.execSync(s,{stdio:[0,1,2],env:a})}catch(r){e=!0,o=n(r)}else try{o=this.execSync(s,{stdio:"pipe",env:a}).toString()}catch(r){e=!0,o=n(r)}return{failed:e,output:o}},r}();exports.TerminalManager=TerminalManager;