@budibase/server
Version:
Budibase Web Server
78 lines (67 loc) โข 1.76 kB
JavaScript
const compose = require("docker-compose")
const path = require("path")
// This script wraps docker-compose allowing you to manage your dev infrastructure with simple commands.
const CONFIG = {
cwd: path.resolve(process.cwd(), "../../hosting"),
config: "docker-compose.dev.yaml",
log: true,
}
const Commands = {
Up: "up",
Down: "down",
Nuke: "nuke",
}
async function up() {
console.log("Spinning up your budibase dev environment... ๐งโจ")
await compose.upAll(CONFIG)
// We always ensure to restart the proxy service in case of nginx conf changes
await compose.restartOne("proxy-service", CONFIG)
}
async function down() {
console.log("Spinning down your budibase dev environment... ๐")
await compose.stop(CONFIG)
}
async function nuke() {
console.log(
"Clearing down your budibase dev environment, including all containers and volumes... ๐ฅ"
)
await compose.down({
...CONFIG,
// stop containers, delete volumes
commandOptions: ["-v", "--remove-orphans"],
})
}
const managementCommand = process.argv.slice(2)[0]
if (
!managementCommand ||
!Object.values(Commands).some(command => managementCommand === command)
) {
throw new Error(
"You must supply either an 'up', 'down' or 'nuke' commmand to manage the budibase development environment."
)
}
let command
switch (managementCommand) {
case Commands.Up:
command = up
break
case Commands.Down:
command = down
break
case Commands.Nuke:
command = nuke
break
default:
command = up
}
command()
.then(() => {
console.log("Done! ๐")
})
.catch(err => {
console.error(
"Something went wrong while managing budibase dev environment:",
err.message
)
})