UNPKG

hivessh

Version:

HiveSsh is an innovative library designed to streamline SSH2 connections and simplify task execution on Linux servers.

69 lines 7.87 kB
import * as path from "path"; export class ExecSession { host; env; timeoutMillis; sudo; constructor(host, env) { this.host = host; this.env = env; } clone() { const session = new ExecSession(this.host, { ...this.env }); session.timeoutMillis = this.timeoutMillis; session.sudo = this.sudo; return session; } cd(newPath) { if (!newPath.startsWith("/")) { newPath = path.normalize(this.env.PWD + "/" + newPath); } this.env.PWD = newPath; } setEnv(key, value) { this.env[key] = value; } unsetEnv(key) { if (key.toUpperCase() == "PWD") { throw new Error("Cant unset process working directory (PWD) in a ExecSession"); } delete this.env[key]; } parseCmdChannelOptions(options) { options = { sudo: this.sudo, timeoutMillis: this.timeoutMillis, ...options, pwd: undefined, env: { ...this.env, ...options?.env, }, }; return options; } execChannel(cmd, options) { options = this.parseCmdExecOptions(options); return this.host.execChannel(cmd, options); } parseCmdExecOptions(options) { options = { sudo: this.sudo, timeoutMillis: this.timeoutMillis, ...options, pwd: undefined, env: { ...this.env, ...options?.env, }, }; return options; } async exec(cmd, options) { options = this.parseCmdExecOptions(options); return this.host.exec(cmd, options); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY1Nlc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRXhlY1Nlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFVN0IsTUFBTSxPQUFPLFdBQVc7SUFLVDtJQUNBO0lBTFgsYUFBYSxDQUFTO0lBQ3RCLElBQUksQ0FBVTtJQUVkLFlBQ1csSUFBYSxFQUNiLEdBQWU7UUFEZixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUN0QixDQUFDO0lBRUwsS0FBSztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUMzQixJQUFJLENBQUMsSUFBSSxFQUNUO1lBQ0ksR0FBRyxJQUFJLENBQUMsR0FBRztTQUNkLENBQ0osQ0FBQTtRQUNELE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtRQUMxQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDeEIsT0FBTyxPQUFPLENBQUE7SUFDbEIsQ0FBQztJQUVELEVBQUUsQ0FDRSxPQUFlO1FBRWYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQTtJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUNGLEdBQVcsRUFDWCxLQUFhO1FBRWIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FDSixHQUFXO1FBRVgsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO1FBQ2xGLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELHNCQUFzQixDQUNsQixPQUEyQjtRQUUzQixPQUFPLEdBQUc7WUFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsR0FBRyxPQUFPO1lBQ1YsR0FBRyxFQUFFLFNBQVM7WUFDZCxHQUFHLEVBQUU7Z0JBQ0QsR0FBRyxJQUFJLENBQUMsR0FBRztnQkFDWCxHQUFHLE9BQU8sRUFBRSxHQUFHO2FBQ2xCO1NBQ0osQ0FBQTtRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxXQUFXLENBQ1AsR0FBVyxFQUNYLE9BQTJCO1FBRTNCLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQzlCLE9BQU8sQ0FDVixDQUFBO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDeEIsR0FBRyxFQUNILE9BQU8sQ0FDVixDQUFBO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUNmLE9BQXdCO1FBRXhCLE9BQU8sR0FBRztZQUNOLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxHQUFHLE9BQU87WUFDVixHQUFHLEVBQUUsU0FBUztZQUNkLEdBQUcsRUFBRTtnQkFDRCxHQUFHLElBQUksQ0FBQyxHQUFHO2dCQUNYLEdBQUcsT0FBTyxFQUFFLEdBQUc7YUFDbEI7U0FDSixDQUFBO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ04sR0FBVyxFQUNYLE9BQXdCO1FBRXhCLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQzlCLE9BQU8sQ0FDVixDQUFBO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsR0FBRyxFQUNILE9BQU8sQ0FDVixDQUFBO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ21kQ2hhbm5lbE9wdGlvbnMsIENtZEV4ZWNPcHRpb25zLCBTc2hDaGFubmVsLCBTc2hDaGFubmVsRXhpdCB9IGZyb20gXCIuL1NzaEV4ZWMuanNcIjtcbmltcG9ydCB7IFNzaEhvc3QgfSBmcm9tIFwiLi9Tc2hIb3N0LmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0VudiB7XG4gICAgVFo/OiBzdHJpbmcsXG4gICAgUFdEOiBzdHJpbmcsXG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjbGFzcyBFeGVjU2Vzc2lvbiB7XG4gICAgdGltZW91dE1pbGxpcz86IG51bWJlclxuICAgIHN1ZG8/OiBib29sZWFuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGhvc3Q6IFNzaEhvc3QsXG4gICAgICAgIHB1YmxpYyBlbnY6IFByb2Nlc3NFbnYsXG4gICAgKSB7IH1cblxuICAgIGNsb25lKCk6IEV4ZWNTZXNzaW9uIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBFeGVjU2Vzc2lvbihcbiAgICAgICAgICAgIHRoaXMuaG9zdCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmVudlxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIHNlc3Npb24udGltZW91dE1pbGxpcyA9IHRoaXMudGltZW91dE1pbGxpc1xuICAgICAgICBzZXNzaW9uLnN1ZG8gPSB0aGlzLnN1ZG9cbiAgICAgICAgcmV0dXJuIHNlc3Npb25cbiAgICB9XG5cbiAgICBjZChcbiAgICAgICAgbmV3UGF0aDogc3RyaW5nLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIW5ld1BhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIG5ld1BhdGggPSBwYXRoLm5vcm1hbGl6ZSh0aGlzLmVudi5QV0QgKyBcIi9cIiArIG5ld1BhdGgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVudi5QV0QgPSBuZXdQYXRoXG4gICAgfVxuXG4gICAgc2V0RW52KFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnZba2V5XSA9IHZhbHVlXG4gICAgfVxuXG4gICAgdW5zZXRFbnYoXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoa2V5LnRvVXBwZXJDYXNlKCkgPT0gXCJQV0RcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FudCB1bnNldCBwcm9jZXNzIHdvcmtpbmcgZGlyZWN0b3J5IChQV0QpIGluIGEgRXhlY1Nlc3Npb25cIilcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSB0aGlzLmVudltrZXldXG4gICAgfVxuXG4gICAgcGFyc2VDbWRDaGFubmVsT3B0aW9ucyhcbiAgICAgICAgb3B0aW9ucz86IENtZENoYW5uZWxPcHRpb25zXG4gICAgKTogQ21kQ2hhbm5lbE9wdGlvbnMge1xuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgc3VkbzogdGhpcy5zdWRvLFxuICAgICAgICAgICAgdGltZW91dE1pbGxpczogdGhpcy50aW1lb3V0TWlsbGlzLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHB3ZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5lbnYsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucz8uZW52LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zXG4gICAgfVxuXG4gICAgZXhlY0NoYW5uZWwoXG4gICAgICAgIGNtZDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogQ21kQ2hhbm5lbE9wdGlvbnNcbiAgICApOiBQcm9taXNlPFNzaENoYW5uZWw+IHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMucGFyc2VDbWRFeGVjT3B0aW9ucyhcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuZXhlY0NoYW5uZWwoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgcGFyc2VDbWRFeGVjT3B0aW9ucyhcbiAgICAgICAgb3B0aW9ucz86IENtZEV4ZWNPcHRpb25zXG4gICAgKTogQ21kRXhlY09wdGlvbnMge1xuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgc3VkbzogdGhpcy5zdWRvLFxuICAgICAgICAgICAgdGltZW91dE1pbGxpczogdGhpcy50aW1lb3V0TWlsbGlzLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHB3ZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5lbnYsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucz8uZW52LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zXG4gICAgfVxuXG4gICAgYXN5bmMgZXhlYyhcbiAgICAgICAgY21kOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiBDbWRFeGVjT3B0aW9uc1xuICAgICk6IFByb21pc2U8U3NoQ2hhbm5lbEV4aXQ+IHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMucGFyc2VDbWRFeGVjT3B0aW9ucyhcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuZXhlYyhcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgIClcbiAgICB9XG59Il19