@eightshone/sshman
Version:
A simple cli ssh manager
74 lines âĸ 3.18 kB
JavaScript
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());
});
};
import select, { Separator } from "@inquirer/select";
import colors from "yoctocolors-cjs";
import { inquirerTheme } from "../../../utils/themes.js";
import stringPadding from "../../../utils/stringPadding.js";
function listConnections(servers) {
return __awaiter(this, void 0, void 0, function* () {
let options = null;
const saved = servers.length
? [
{
name: colors.dim(` # ${stringPadding("Name")} Config`),
disabled: " ",
value: null,
},
...servers.map((server, index) => ({
name: `${stringPadding(`${index + 1}`, 3, "start", "0")} ${stringPadding(server.name)} ${server.username}:[redacted]@${server.host}:${server.port}`,
value: `ssh-display#-_-#${JSON.stringify(server)}#-_-#${index}`,
description: "Connect to server",
})),
]
: [
{
name: " đ No saved servers! Add a new server or connect to one and it will appear here",
value: "recent-sessions",
disabled: " ",
},
];
console.log("đī¸ Saved servers");
console.log(' Use "Search" option to enter search mode');
let answer = yield select({
message: "Saved servers",
choices: [
{
name: "đ Search",
value: "ssh-search",
description: "Enter search mode",
},
{
name: "đ¤ Export configurations",
value: "ssh-export",
description: "Export server configurations",
},
{
name: "âŠī¸ Main menu",
value: "main",
description: "Return to main menu",
},
new Separator(" "),
...saved,
],
theme: inquirerTheme,
pageSize: 13,
default: servers.length ? saved[1].value : "main",
});
if (answer !== "exit") {
console.clear();
}
if (answer.startsWith("ssh-display")) {
[answer, ...options] = answer.split("#-_-#");
}
return [answer, options];
});
}
export default listConnections;
//# sourceMappingURL=list.js.map