diff --git a/package.json b/package.json index d7b8336..400dd79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hivessh", - "version": "0.3.11", + "version": "0.3.12", "description": "HiveSsh simplifies SSH2 connections via promise-based task execution on Linux servers with built-in server utilities and powerful command execution functions", "main": "dist/index.js", "type": "module", diff --git a/src/apm/checker.ts b/src/apm/checker.ts index af379e4..b84984f 100644 --- a/src/apm/checker.ts +++ b/src/apm/checker.ts @@ -2,9 +2,9 @@ import { SshHost } from "../SshHost.js" import { Awaitable } from "../utils/base.js" import { AbstractPackageManager } from "./ApmInterface.js" import { AbstractPackageManagerWrapper } from "./apm.js" -import { initAptApm } from "./apt.js" -import { initDnfApm } from "./dnf.js" -import { initYumApm } from "./yum.js" +import { initAptApm } from "./impl/apt.js" +import { initDnfApm } from "./impl/dnf.js" +import { initYumApm } from "./impl/yum.js" export type ApmInit = ( sshHost: SshHost diff --git a/src/apm/apt.ts b/src/apm/impl/apt.ts similarity index 94% rename from src/apm/apt.ts rename to src/apm/impl/apt.ts index a83662c..790e5ec 100644 --- a/src/apm/apt.ts +++ b/src/apm/impl/apt.ts @@ -1,25 +1,24 @@ -import { SshChannelExit, StreamDataMapper } from "../SshExec.js" -import { SshHost } from "../SshHost.js" -import { Awaitable, trimAll } from "../utils/base.js" -import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js" +import { SshChannelExit, StreamDataMapper } from "../../SshExec.js" +import { SshHost } from "../../SshHost.js" +import { Awaitable, trimAll } from "../../utils/base.js" +import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js" export const aptEnv = { - "LANG": "en_US.UTF-8", - "DEBIAN_FRONTEND": "noninteractive", + LANG: "en_US.UTF-8", + DEBIAN_FRONTEND: "noninteractive", } export const ignoredErrMsgs: string[] = [ "debconf: unable to initialize frontend", "warning" ] + export const ignoreMessageFilter: StreamDataMapper = ( data: string ) => { let data2 = trimAll(data).toLowerCase() for (const msg of ignoredErrMsgs) { if ( - data2.startsWith(msg) || - data2.endsWith(msg) || data2.includes(msg) ) { return undefined diff --git a/src/apm/dnf.ts b/src/apm/impl/dnf.ts similarity index 79% rename from src/apm/dnf.ts rename to src/apm/impl/dnf.ts index 52bfc79..e40019e 100644 --- a/src/apm/dnf.ts +++ b/src/apm/impl/dnf.ts @@ -1,23 +1,29 @@ -import { SshChannelExit, StreamDataMapper } from "../SshExec.js" -import { SshHost } from "../SshHost.js" -import { Awaitable, filterEmpty } from "../utils/base.js" -import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js" +import { SshChannelExit, StreamDataMapper } from "../../SshExec.js" +import { SshHost } from "../../SshHost.js" +import { Awaitable, filterEmpty, trimAll } from "../../utils/base.js" +import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js" export const dnfEnv = { LANG: "en_US.UTF-8" } -export const ignoreDnfMessages: StreamDataMapper = ( +export const ignoredErrMsgs: string[] = [ + "transaction completed", + "base", + "cleaning up", + "warning", +] + +export const ignoreMessageFilter: StreamDataMapper = ( data: string ) => { - const loweredData = data.toLowerCase() - if ( - loweredData.includes("transaction completed") || - loweredData.includes("base") || - loweredData.includes("cleaning up") || - loweredData.startsWith("warning:") - ) { - return undefined + let data2 = trimAll(data).toLowerCase() + for (const msg of ignoredErrMsgs) { + if ( + data2.includes(msg) + ) { + return undefined + } } return data } @@ -73,7 +79,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then() @@ -84,7 +90,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then() @@ -97,7 +103,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then(), @@ -107,7 +113,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then(), @@ -119,7 +125,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then(), @@ -129,7 +135,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } ).then(), @@ -142,7 +148,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } @@ -154,7 +160,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } @@ -166,7 +172,7 @@ export const initDnfApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreDnfMessages, + mapErrOut: ignoreMessageFilter, env: dnfEnv, } diff --git a/src/apm/yum.ts b/src/apm/impl/yum.ts similarity index 79% rename from src/apm/yum.ts rename to src/apm/impl/yum.ts index df0e434..7e486d5 100644 --- a/src/apm/yum.ts +++ b/src/apm/impl/yum.ts @@ -1,21 +1,29 @@ -import { SshChannelExit, StreamDataMapper } from "../SshExec.js" -import { SshHost } from "../SshHost.js" -import { Awaitable, filterEmpty } from "../utils/base.js" -import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js" +import { SshChannelExit, StreamDataMapper } from "../../SshExec.js" +import { SshHost } from "../../SshHost.js" +import { Awaitable, filterEmpty, trimAll } from "../../utils/base.js" +import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js" export const yumEnv = { LANG: "en_US.UTF-8" } -export const ignoreYumMessages: StreamDataMapper = (data: string) => { - const loweredData = data.toLowerCase() - if ( - loweredData.includes("transaction completed") || - loweredData.includes("base") || - loweredData.includes("cleaning up") || - loweredData.startsWith("warning:") - ) { - return undefined +export const ignoredErrMsgs: string[] = [ + "transaction completed", + "base", + "cleaning up", + "warning", +] + +export const ignoreMessageFilter: StreamDataMapper = ( + data: string +) => { + let data2 = trimAll(data).toLowerCase() + for (const msg of ignoredErrMsgs) { + if ( + data2.includes(msg) + ) { + return undefined + } } return data } @@ -66,7 +74,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then() @@ -77,7 +85,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then() @@ -90,7 +98,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(), @@ -100,7 +108,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(), @@ -112,7 +120,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(), @@ -122,7 +130,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(), @@ -134,7 +142,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(parseYumList), @@ -144,7 +152,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(parseYumList), @@ -154,7 +162,7 @@ export const initYumApm: ApmInit = ( { sudo: true, timeoutMillis: cmdTimeoutMillis, - mapErrOut: ignoreYumMessages, + mapErrOut: ignoreMessageFilter, env: yumEnv, } ).then(parseYumDescription),