UNPKG

@eightshone/sshman

Version:
65 lines 2.72 kB
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