@eightshone/sshman
Version:
A simple cli ssh manager
65 lines • 2.72 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 input from "@inquirer/input";
import select from "@inquirer/select";
import password from "@inquirer/password";
import number from "@inquirer/number";
import validateServerName from "../../utils/validateServerName.js";
import { nanoid } from "nanoid";
function promptSSHConfig() {
return __awaiter(this, arguments, void 0, function* (saveConnection = false, config) {
const host = yield input({ message: "Hostname:", required: true });
const username = yield input({ message: "Username:", required: true });
const port = yield number({
message: "Port:",
default: config.defaults.port,
});
const usePassword = yield select({
message: "Authentication method:",
choices: [
{
name: "🔒 Password",
value: true,
description: "Use password to connect",
},
{
name: "🔑 Key",
value: false,
description: "Use private key to connect",
},
],
});
const auth = usePassword
? yield password({ message: "Password:" })
: yield input({
message: "Key path:",
default: config.defaults.privateKey,
});
let name;
if (saveConnection) {
name = yield input({
message: `Server name:`,
default: `${config.defaults.autoSavePrefix}-${username}@${host}`,
validate: (value) => validateServerName(value, config.servers),
});
}
return Object.assign({ id: nanoid(), name,
host,
username,
port }, (usePassword
? { usePassword: true, password: auth }
: {
usePassword: false,
privateKey: auth,
}));
});
}
export default promptSSHConfig;
//# sourceMappingURL=promptSSHConfig.js.map