mirror of
https://github.com/caprover/caprover
synced 2026-09-28 09:35:40 +00:00
Add MachineHelper
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
const { printMessage } = require("../utils/messageHandler")
|
||||
const configstore = require("configstore")
|
||||
const packagejson = require("../package.json")
|
||||
const configs = new configstore(packagejson.name, {
|
||||
captainMachines: []
|
||||
})
|
||||
|
||||
class MachineHelper {
|
||||
constructor() {
|
||||
this.machines = configs.get("captainMachines")
|
||||
}
|
||||
|
||||
getMachinesAsOptions() {
|
||||
const firstItemInOption = [
|
||||
{
|
||||
name: "-- CANCEL --",
|
||||
value: "",
|
||||
short: ""
|
||||
}
|
||||
]
|
||||
const listOfMachines = this.machines.map(machine => {
|
||||
return {
|
||||
name: `${machine.name} at ${machine.baseUrl}`,
|
||||
value: `${machine.name}`,
|
||||
short: `${machine.name} at ${machine.baseUrl}`
|
||||
}
|
||||
})
|
||||
|
||||
return [...firstItemInOption, ...listOfMachines]
|
||||
}
|
||||
|
||||
setMachines(machines) {
|
||||
this.machines = machines
|
||||
}
|
||||
|
||||
addMachine(newMachine) {
|
||||
const tempMachines = this.machines
|
||||
const newMachines = [...tempMachines, newMachine]
|
||||
|
||||
// Add to local storage
|
||||
configs.set("captainMachines", newMachines)
|
||||
|
||||
this.setMachines(configs.get("captainMachines"))
|
||||
}
|
||||
|
||||
logoutMachine(machineName) {
|
||||
const removedMachine = MachineHelper.machines.filter(
|
||||
machine => machine.name === machineName
|
||||
)[0]
|
||||
const newMachines = MachineHelper.machines.filter(
|
||||
machine => machine.name !== machineName
|
||||
)
|
||||
|
||||
MachineHelper.setMachines(newMachines)
|
||||
|
||||
printMessage(
|
||||
`You are now logged out from ${removedMachine.name} at ${
|
||||
removedMachine.baseUrl
|
||||
}...\n`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new MachineHelper()
|
||||
+2
-8
@@ -1,9 +1,5 @@
|
||||
const chalk = require("chalk")
|
||||
const configstore = require("configstore")
|
||||
const packagejson = require("../package.json")
|
||||
const configs = new configstore(packagejson.name, {
|
||||
captainMachines: []
|
||||
})
|
||||
const MachineHelper = require("../helpers/MachineHelper")
|
||||
|
||||
function _displayMachine(machine) {
|
||||
console.log(
|
||||
@@ -17,9 +13,7 @@ function _displayMachine(machine) {
|
||||
function list() {
|
||||
console.log("\nLogged in Captain Machines:\n")
|
||||
|
||||
const machines = configs.get("captainMachines")
|
||||
|
||||
machines.map(machine => {
|
||||
MachineHelper.machines.map(machine => {
|
||||
_displayMachine(machine)
|
||||
})
|
||||
|
||||
|
||||
+8
-21
@@ -1,24 +1,11 @@
|
||||
const MachineHelper = require("../helpers/MachineHelper")
|
||||
const { printGreenMessage, printError } = require("../utils/messageHandler")
|
||||
const inquirer = require("inquirer")
|
||||
const configstore = require("configstore")
|
||||
const packagejson = require("../package.json")
|
||||
const configs = new configstore(packagejson.name, {
|
||||
captainMachines: []
|
||||
})
|
||||
const machines = configs.get("captainMachines")
|
||||
const { cleanUpUrl, findDefaultCaptainName } = require("../utils/loginHelpers")
|
||||
const { printMessage } = require("../utils/messageHandler")
|
||||
const { SAMPLE_DOMAIN } = require("../utils/constants")
|
||||
const LoginApi = require("../api/LoginApi")
|
||||
|
||||
function setCaptainMachine(newMachine) {
|
||||
const machines = configs.get("captainMachines")
|
||||
|
||||
machines.push(newMachine)
|
||||
|
||||
configs.set("captainMachines", machines)
|
||||
}
|
||||
|
||||
function login() {
|
||||
printMessage("Login to a Captain Machine")
|
||||
|
||||
@@ -36,7 +23,7 @@ function login() {
|
||||
|
||||
if (!cleanUpUrl(value)) return "This is an invalid URL: " + value
|
||||
|
||||
machines.map(machine => {
|
||||
MachineHelper.machines.map(machine => {
|
||||
if (cleanUpUrl(machine.baseUrl) === cleanUpUrl(value)) {
|
||||
return `${value} already exist as ${
|
||||
machine.name
|
||||
@@ -75,7 +62,7 @@ function login() {
|
||||
message: "Enter a name for this Captain machine:",
|
||||
default: findDefaultCaptainName(),
|
||||
validate: value => {
|
||||
machines.map(machine => {
|
||||
MachineHelper.machines.map(machine => {
|
||||
if (machine.name === value) {
|
||||
return `${value} already exist. If you want to replace the existing entry, you have to first use <logout> command, and then re-login.`
|
||||
}
|
||||
@@ -112,17 +99,17 @@ function login() {
|
||||
throw new Error(JSON.stringify(response, null, 2))
|
||||
}
|
||||
|
||||
printGreenMessage(`Logged in successfully to ${baseUrl}`)
|
||||
|
||||
printGreenMessage(`Authorization token is now saved as ${captainName} \n`)
|
||||
|
||||
const newMachine = {
|
||||
authToken: response.token,
|
||||
baseUrl,
|
||||
name: captainName
|
||||
}
|
||||
|
||||
setCaptainMachine(newMachine)
|
||||
MachineHelper.addMachine(newMachine)
|
||||
|
||||
printGreenMessage(`Logged in successfully to ${baseUrl}`)
|
||||
|
||||
printGreenMessage(`Authorization token is now saved as ${captainName} \n`)
|
||||
} catch (error) {
|
||||
const errorMessage = error.message ? error.message : error
|
||||
|
||||
|
||||
+3
-42
@@ -1,33 +1,9 @@
|
||||
const MachineHelper = require("../helpers/MachineHelper")
|
||||
const { printMessage } = require("../utils/messageHandler")
|
||||
const inquirer = require("inquirer")
|
||||
const configstore = require("configstore")
|
||||
const packagejson = require("../package.json")
|
||||
const configs = new configstore(packagejson.name, {
|
||||
captainMachines: []
|
||||
})
|
||||
const machines = configs.get("captainMachines")
|
||||
|
||||
function getMachineList() {
|
||||
const firstItemInOption = [
|
||||
{
|
||||
name: "-- CANCEL --",
|
||||
value: "",
|
||||
short: ""
|
||||
}
|
||||
]
|
||||
const listOfMachines = machines.map(machine => {
|
||||
return {
|
||||
name: `${machine.name} at ${machine.baseUrl}`,
|
||||
value: `${machine.name}`,
|
||||
short: `${machine.name} at ${machine.baseUrl}`
|
||||
}
|
||||
})
|
||||
|
||||
return [...firstItemInOption, ...listOfMachines]
|
||||
}
|
||||
|
||||
function generateQuestions() {
|
||||
const listOfMachines = getMachineList()
|
||||
const listOfMachines = MachineHelper.getMachinesAsOptions()
|
||||
|
||||
return [
|
||||
{
|
||||
@@ -46,21 +22,6 @@ function generateQuestions() {
|
||||
]
|
||||
}
|
||||
|
||||
function removeMachineFromLocalStorage(machineName) {
|
||||
const removedMachine = machines.filter(
|
||||
machine => machine.name === machineName
|
||||
)[0]
|
||||
const newMachines = machines.filter(machine => machine.name !== machineName)
|
||||
|
||||
configs.set("captainMachines", newMachines)
|
||||
|
||||
printMessage(
|
||||
`You are now logged out from ${removedMachine.name} at ${
|
||||
removedMachine.baseUrl
|
||||
}...\n`
|
||||
)
|
||||
}
|
||||
|
||||
function logout() {
|
||||
const questions = generateQuestions()
|
||||
|
||||
@@ -75,7 +36,7 @@ function logout() {
|
||||
return
|
||||
}
|
||||
|
||||
removeMachineFromLocalStorage(captainNameToLogout)
|
||||
MachineHelper.logoutMachine(captainNameToLogout)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
const configstore = require("configstore")
|
||||
const packagejson = require("../package.json")
|
||||
const configs = new configstore(packagejson.name, {
|
||||
captainMachines: []
|
||||
})
|
||||
const machines = configs.get("captainMachines")
|
||||
const MachineHelper = require("../helpers/MachineHelper")
|
||||
|
||||
function cleanUpUrl(url) {
|
||||
if (!url || !url.length) return null
|
||||
@@ -22,19 +17,8 @@ function cleanUpUrl(url) {
|
||||
.trim()
|
||||
}
|
||||
|
||||
function _getCaptainFullName(suffix) {
|
||||
const formatSuffix = suffix < 10 ? `0${suffix}` : suffix
|
||||
|
||||
return `captain-${formatSuffix}`
|
||||
}
|
||||
|
||||
const _isSuffixValid = suffixNumber =>
|
||||
machines.map(machine => {
|
||||
machine.name !== _getCaptainFullName(suffixNumber)
|
||||
})
|
||||
|
||||
function findDefaultCaptainName() {
|
||||
let currentSuffix = machines.length + 1
|
||||
let currentSuffix = MachineHelper.machines.length + 1
|
||||
|
||||
while (!_isSuffixValid(currentSuffix)) {
|
||||
currentSuffix++
|
||||
@@ -43,6 +27,17 @@ function findDefaultCaptainName() {
|
||||
return _getCaptainFullName(currentSuffix)
|
||||
}
|
||||
|
||||
function _getCaptainFullName(suffix) {
|
||||
const formatSuffix = suffix < 10 ? `0${suffix}` : suffix
|
||||
|
||||
return `captain-${formatSuffix}`
|
||||
}
|
||||
|
||||
const _isSuffixValid = suffixNumber =>
|
||||
MachineHelper.machines.map(machine => {
|
||||
machine.name !== _getCaptainFullName(suffixNumber)
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
cleanUpUrl,
|
||||
findDefaultCaptainName
|
||||
|
||||
Reference in New Issue
Block a user