simplify try catch in manage script

This commit is contained in:
Martin McKeaveney 2021-03-23 11:01:33 +00:00
parent 555e6386a7
commit afaa706e07
7 changed files with 121 additions and 186 deletions

View File

@ -7,8 +7,6 @@ const { join, resolve } = require("path")
const initialiseBudibase = require("../../server/src/utilities/initialiseBudibase")
const cypressConfig = require("../cypress.json")
const homedir = join(require("os").homedir(), ".budibase")
process.env.BUDIBASE_API_KEY = "6BE826CB-6B30-4AEC-8777-2E90464633DE"
process.env.NODE_ENV = "cypress"
process.env.ENABLE_ANALYTICS = "false"
@ -17,9 +15,8 @@ process.env.PORT = cypressConfig.env.PORT
// Stop info logs polluting test outputs
process.env.LOG_LEVEL = "error"
async function run(dir) {
process.env.BUDIBASE_DIR = resolve(dir)
require("dotenv").config({ path: resolve(dir, ".env") })
async function run() {
// require("dotenv").config({ path: resolve(dir, ".env") })
// dont make this a variable or top level require
// it will cause environment module to be loaded prematurely
@ -27,12 +24,15 @@ async function run(dir) {
server.on("close", () => console.log("Server Closed"))
}
initialiseBudibase({ dir: homedir, clientId: "cypress-test" })
.then(() => {
delete require.cache[require.resolve("../../server/src/environment")]
const xPlatHomeDir = homedir.startsWith("~")
? join(homedir(), homedir.substring(1))
: homedir
run(xPlatHomeDir)
})
.catch(e => console.error(e))
run()
// TODO: ensure that this still works
// initialiseBudibase({ dir: homedir, clientId: "cypress-test" })
// .then(() => {
// delete require.cache[require.resolve("../../server/src/environment")]
// const xPlatHomeDir = homedir.startsWith("~")
// ? join(homedir(), homedir.substring(1))
// : homedir
// run(xPlatHomeDir)
// })
// .catch(e => console.error(e))

View File

@ -65,8 +65,7 @@
"!src/db/tests/**/*",
"!src/tests/**/*",
"!src/automations/tests/**/*",
"!src/utilities/fileProcessor.js",
"!src/utilities/initialiseBudibase.js"
"!src/utilities/fileProcessor.js"
],
"coverageReporters": [
"lcov",

View File

@ -17,31 +17,19 @@ const Commands = {
async function up() {
console.log("Spinning up your budibase dev environment... 🔧✨")
try {
await compose.upAll(CONFIG)
} catch (err) {
console.log("Something went wrong:", err.message)
}
await compose.upAll(CONFIG)
}
async function down() {
console.log("Spinning down your budibase dev environment... 🌇")
try {
await compose.stop(CONFIG)
} catch (err) {
console.log("Something went wrong:", err.message)
}
await compose.stop(CONFIG)
}
async function nuke() {
console.log(
"Clearing down your budibase dev environment, including all containers and volumes... 💥"
)
try {
await compose.down(CONFIG)
} catch (err) {
console.log("Something went wrong:", err.message)
}
await compose.down(CONFIG)
}
const managementCommand = process.argv.slice(2)[0]
@ -74,6 +62,9 @@ command()
.then(() => {
console.log("Done! 🎉")
})
.catch(() => {
console.log("Error while managing budibase dev environment.")
.catch(err => {
console.error(
"Something went wrong while managing budibase dev environment:",
err.message
)
})

View File

@ -1,17 +0,0 @@
// const { join } = require("path")
// const { homedir } = require("os")
// // const initialiseBudibase = require("../src/utilities/initialiseBudibase")
// // const DIRECTORY = "~/.budibase"
// function run() {
// let opts = {}
// // let dir = DIRECTORY
// opts.quiet = true
// // opts.dir = dir.startsWith("~") ? join(homedir(), dir.substring(1)) : dir
// return initialiseBudibase(opts)
// }
// run().then(() => {
// console.log("Init complete.")
// })

View File

@ -1,7 +1,6 @@
const Router = require("@koa/router")
const controller = require("../controllers/static")
const { budibaseTempDir } = require("../../utilities/budibaseDir")
const env = require("../../environment")
const authorized = require("../../middleware/authorized")
const { BUILDER } = require("../../utilities/security/permissions")
const usage = require("../../middleware/usageQuota")

View File

@ -1,112 +1,112 @@
const { app, BrowserWindow, shell, dialog } = require("electron")
const { join } = require("./utilities/centralPath")
const isDev = require("electron-is-dev")
const { autoUpdater } = require("electron-updater")
const unhandled = require("electron-unhandled")
const { existsSync } = require("fs-extra")
const initialiseBudibase = require("./utilities/initialiseBudibase")
const { budibaseAppsDir } = require("./utilities/budibaseDir")
const { openNewGitHubIssue, debugInfo } = require("electron-util")
const eventEmitter = require("./events")
// const { app, BrowserWindow, shell, dialog } = require("electron")
// const { join } = require("./utilities/centralPath")
// const isDev = require("electron-is-dev")
// const { autoUpdater } = require("electron-updater")
// const unhandled = require("electron-unhandled")
// const { existsSync } = require("fs-extra")
// const initialiseBudibase = require("./utilities/initialiseBudibase")
// const { budibaseAppsDir } = require("./utilities/budibaseDir")
// const { openNewGitHubIssue, debugInfo } = require("electron-util")
// const eventEmitter = require("./events")
const budibaseDir = budibaseAppsDir()
const envFile = join(budibaseDir, ".env")
// const budibaseDir = budibaseAppsDir()
// const envFile = join(budibaseDir, ".env")
async function startApp() {
if (!existsSync(envFile)) {
await initialiseBudibase({ dir: budibaseDir })
}
// evict environment from cache, so it reloads when next asked
delete require.cache[require.resolve("./environment")]
// store the port incase its going to get overridden
const port = process.env.PORT
require("dotenv").config({ path: envFile })
// overwrite the port - don't want to use dotenv for the port
require("./environment")._set("PORT", port)
// async function startApp() {
// if (!existsSync(envFile)) {
// await initialiseBudibase({ dir: budibaseDir })
// }
// // evict environment from cache, so it reloads when next asked
// delete require.cache[require.resolve("./environment")]
// // store the port incase its going to get overridden
// const port = process.env.PORT
// require("dotenv").config({ path: envFile })
// // overwrite the port - don't want to use dotenv for the port
// require("./environment")._set("PORT", port)
unhandled({
showDialog: true,
reportButton: error => {
openNewGitHubIssue({
title: error.message,
user: "Budibase",
labels: ["error-report"],
repo: "budibase",
body: `### Error that occurred when using the budibase builder:\n\`\`\`\n${
error.stack
}\n\`\`\`\n### Operating System Information:\n---\n\n${debugInfo()}`,
})
},
})
// unhandled({
// showDialog: true,
// reportButton: error => {
// openNewGitHubIssue({
// title: error.message,
// user: "Budibase",
// labels: ["error-report"],
// repo: "budibase",
// body: `### Error that occurred when using the budibase builder:\n\`\`\`\n${
// error.stack
// }\n\`\`\`\n### Operating System Information:\n---\n\n${debugInfo()}`,
// })
// },
// })
let win
// let win
function handleRedirect(e, url) {
e.preventDefault()
shell.openExternal(url)
}
// function handleRedirect(e, url) {
// e.preventDefault()
// shell.openExternal(url)
// }
async function createWindow() {
app.server = require("./app")
eventEmitter.on("internal:port", port => {
const APP_URL = `http://localhost:${port}/_builder`
const APP_TITLE = "Budibase Builder"
win = new BrowserWindow({
width: 1920,
height: 1080,
icon: join(__dirname, "..", "build", "icons", "512x512.png"),
})
win.setTitle(APP_TITLE)
win.loadURL(APP_URL)
if (isDev) {
win.webContents.openDevTools()
} else {
autoUpdater.checkForUpdatesAndNotify()
}
// async function createWindow() {
// app.server = require("./app")
// eventEmitter.on("internal:port", port => {
// const APP_URL = `http://localhost:${port}/_builder`
// const APP_TITLE = "Budibase Builder"
// win = new BrowserWindow({
// width: 1920,
// height: 1080,
// icon: join(__dirname, "..", "build", "icons", "512x512.png"),
// })
// win.setTitle(APP_TITLE)
// win.loadURL(APP_URL)
// if (isDev) {
// win.webContents.openDevTools()
// } else {
// autoUpdater.checkForUpdatesAndNotify()
// }
// open _blank in default browser
win.webContents.on("new-window", handleRedirect)
win.webContents.on("will-navigate", handleRedirect)
})
}
// // open _blank in default browser
// win.webContents.on("new-window", handleRedirect)
// win.webContents.on("will-navigate", handleRedirect)
// })
// }
app.whenReady().then(createWindow)
// app.whenReady().then(createWindow)
// Quit when all windows are closed.
app.on("window-all-closed", () => {
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== "darwin") {
app.server.close()
app.quit()
}
})
// // Quit when all windows are closed.
// app.on("window-all-closed", () => {
// // On macOS it is common for applications and their menu bar
// // to stay active until the user quits explicitly with Cmd + Q
// if (process.platform !== "darwin") {
// app.server.close()
// app.quit()
// }
// })
app.on("activate", () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (win === null) createWindow()
})
}
// app.on("activate", () => {
// // On macOS it's common to re-create a window in the app when the
// // dock icon is clicked and there are no other windows open.
// if (win === null) createWindow()
// })
// }
autoUpdater.on("update-downloaded", (event, releaseNotes, releaseName) => {
const dialogOpts = {
type: "info",
buttons: ["Restart", "Later"],
title: "Budibase Update Available",
message: process.platform === "win32" ? releaseNotes : releaseName,
detail:
"A new version of the budibase builder has been downloaded. Restart the application to apply the updates.",
}
// autoUpdater.on("update-downloaded", (event, releaseNotes, releaseName) => {
// const dialogOpts = {
// type: "info",
// buttons: ["Restart", "Later"],
// title: "Budibase Update Available",
// message: process.platform === "win32" ? releaseNotes : releaseName,
// detail:
// "A new version of the budibase builder has been downloaded. Restart the application to apply the updates.",
// }
dialog.showMessageBox(dialogOpts).then(returnValue => {
if (returnValue.response === 0) autoUpdater.quitAndInstall()
})
})
// dialog.showMessageBox(dialogOpts).then(returnValue => {
// if (returnValue.response === 0) autoUpdater.quitAndInstall()
// })
// })
autoUpdater.on("error", message => {
console.error("There was a problem updating the application")
console.error(message)
})
// autoUpdater.on("error", message => {
// console.error("There was a problem updating the application")
// console.error(message)
// })
startApp()
// startApp()

View File

@ -1,37 +0,0 @@
// const { existsSync, readFile, writeFile, ensureDir } = require("fs-extra")
// const { join, resolve } = require("./centralPath")
// const { processString } = require("@budibase/string-templates")
// const uuid = require("uuid")
// module.exports = async opts => {
// // await ensureDir(opts.dir)
// await setCouchDbUrl(opts)
// // need an env file
// await createDevEnvFile(opts)
// }
// const setCouchDbUrl = async opts => {
// if (!opts.couchDbUrl) {
// const dataDir = join(opts.dir, ".data")
// await ensureDir(dataDir)
// opts.couchDbUrl =
// dataDir + (dataDir.endsWith("/") || dataDir.endsWith("\\") ? "" : "/")
// }
// }
// const createDevEnvFile = async opts => {
// const destConfigFile = join(opts.dir, "./.env")
// let createConfig = !existsSync(destConfigFile) || opts.quiet
// if (createConfig) {
// const template = await readFile(
// resolve(__dirname, "..", "..", ".env.template"),
// {
// encoding: "utf8",
// }
// )
// opts.cookieKey1 = opts.cookieKey1 || uuid.v4()
// const config = await processString(template, opts)
// await writeFile(destConfigFile, config, { flag: "w+" })
// }
// }