UNPKG

hivessh

Version:

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

44 lines 6.72 kB
export const unknownDistro = "unknown"; export const defaultOsRelease = { distroName: unknownDistro, distroVersion: unknownDistro, meta: {} }; export async function fetchOsRelease(sshHost) { let stats = await sshHost.sftp.readdir("/etc"); stats = stats.filter((v) => v.filename.endsWith("-release")); if (stats.length == 0) { throw new Error("No '/etc/*-release' file found"); } const meta = {}; for (const stat of stats) { const value = "" + await sshHost.sftp.readFile(stat.path + "/" + stat.filename); for (const varLine of value.split("\n")) { const i = varLine.indexOf("="); const key = varLine.slice(0, i); if (key.length == 0) { continue; } let value = varLine.slice(i + 1); while (value.startsWith("\"") || value.startsWith("'")) { value = value.slice(1); } while (value.endsWith("\"") || value.endsWith("'")) { value = value.slice(0, -1); } meta[key] = value; } } const name = (meta.NAME ?? meta.DISTRIB_ID ?? meta.DISTRO_ID ?? meta.ID ?? "unknown").toLowerCase(); const version = (meta.VERSION_ID ?? meta.DISTRIB_RELEASE ?? meta.DISTRO_RELEASE ?? meta.RELEASE ?? "unknown").toLowerCase(); return { distroName: name, distroVersion: version, meta: meta }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3NSZWxlYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vzc2VudGlhbHMvT3NSZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFRdEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQWM7SUFDdkMsVUFBVSxFQUFFLGFBQWE7SUFDekIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsSUFBSSxFQUFFLEVBQUU7Q0FDWCxDQUFBO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2hDLE9BQWdCO0lBRWhCLElBQUksS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFOUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFFNUQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBRU4sRUFBRSxDQUFBO0lBRU4sS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDbEMsQ0FBQTtRQUVELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFFOUIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDL0IsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixTQUFRO1lBQ1osQ0FBQztZQUVELElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBRWhDLE9BQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQ3ZCLENBQUM7Z0JBQ0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDMUIsQ0FBQztZQUVELE9BQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ3JCLENBQUM7Z0JBQ0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDOUIsQ0FBQztZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUNULElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FDekMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNmLE1BQU0sT0FBTyxHQUFHLENBQ1osSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZTtRQUN2QyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxDQUNuRCxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBRWYsT0FBTztRQUNILFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLElBQUksRUFBRSxJQUFJO0tBQ2IsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTc2hIb3N0IH0gZnJvbSBcIi4uL1NzaEhvc3QuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlTWV0YSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB1bmtub3duRGlzdHJvID0gXCJ1bmtub3duXCJcblxuZXhwb3J0IGludGVyZmFjZSBPc1JlbGVhc2Uge1xuICAgIGRpc3Ryb05hbWU6IHN0cmluZ1xuICAgIGRpc3Ryb1ZlcnNpb246IHN0cmluZ1xuICAgIG1ldGE6IFJlbGVhc2VNZXRhXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0T3NSZWxlYXNlOiBPc1JlbGVhc2UgPSB7XG4gICAgZGlzdHJvTmFtZTogdW5rbm93bkRpc3RybyxcbiAgICBkaXN0cm9WZXJzaW9uOiB1bmtub3duRGlzdHJvLFxuICAgIG1ldGE6IHt9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaE9zUmVsZWFzZShcbiAgICBzc2hIb3N0OiBTc2hIb3N0XG4pOiBQcm9taXNlPE9zUmVsZWFzZT4ge1xuICAgIGxldCBzdGF0cyA9IGF3YWl0IHNzaEhvc3Quc2Z0cC5yZWFkZGlyKFwiL2V0Y1wiKVxuXG4gICAgc3RhdHMgPSBzdGF0cy5maWx0ZXIoKHYpID0+IHYuZmlsZW5hbWUuZW5kc1dpdGgoXCItcmVsZWFzZVwiKSlcblxuICAgIGlmIChzdGF0cy5sZW5ndGggPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyAnL2V0Yy8qLXJlbGVhc2UnIGZpbGUgZm91bmRcIilcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xuICAgIH0gPSB7fVxuXG4gICAgZm9yIChjb25zdCBzdGF0IG9mIHN0YXRzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gXCJcIiArIGF3YWl0IHNzaEhvc3Quc2Z0cC5yZWFkRmlsZShcbiAgICAgICAgICAgIHN0YXQucGF0aCArIFwiL1wiICsgc3RhdC5maWxlbmFtZVxuICAgICAgICApXG5cbiAgICAgICAgZm9yIChjb25zdCB2YXJMaW5lIG9mIHZhbHVlLnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBpID0gdmFyTGluZS5pbmRleE9mKFwiPVwiKVxuXG4gICAgICAgICAgICBjb25zdCBrZXkgPSB2YXJMaW5lLnNsaWNlKDAsIGkpXG4gICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHZhbHVlID0gdmFyTGluZS5zbGljZShpICsgMSlcblxuICAgICAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgICAgIHZhbHVlLnN0YXJ0c1dpdGgoXCJcXFwiXCIpIHx8XG4gICAgICAgICAgICAgICAgdmFsdWUuc3RhcnRzV2l0aChcIidcIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgICAgIHZhbHVlLmVuZHNXaXRoKFwiXFxcIlwiKSB8fFxuICAgICAgICAgICAgICAgIHZhbHVlLmVuZHNXaXRoKFwiJ1wiKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtMSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWV0YVtrZXldID0gdmFsdWVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSAoXG4gICAgICAgIG1ldGEuTkFNRSA/PyBtZXRhLkRJU1RSSUJfSUQgPz9cbiAgICAgICAgbWV0YS5ESVNUUk9fSUQgPz8gbWV0YS5JRCA/PyBcInVua25vd25cIlxuICAgICkudG9Mb3dlckNhc2UoKVxuICAgIGNvbnN0IHZlcnNpb24gPSAoXG4gICAgICAgIG1ldGEuVkVSU0lPTl9JRCA/PyBtZXRhLkRJU1RSSUJfUkVMRUFTRSA/P1xuICAgICAgICBtZXRhLkRJU1RST19SRUxFQVNFID8/IG1ldGEuUkVMRUFTRSA/PyBcInVua25vd25cIlxuICAgICkudG9Mb3dlckNhc2UoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGlzdHJvTmFtZTogbmFtZSxcbiAgICAgICAgZGlzdHJvVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgbWV0YTogbWV0YVxuICAgIH1cbn0iXX0=