fix: make all server cli commands awaitable

This commit is contained in:
Ben Allfree 2024-11-09 07:27:41 -08:00
parent 544120a93e
commit 846fd8664e
7 changed files with 24 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import {
MOTHERSHIP_ADMIN_USERNAME,
MOTHERSHIP_URL,
discordAlert,
neverendingPromise,
tryFetch,
} from '../../../../../core'
import {
@ -70,4 +71,6 @@ export async function daemon() {
res.status(500).send(err.toString())
}
;(await proxyService()).use(errorHandler)
await neverendingPromise()
}

View File

@ -1,6 +1,7 @@
import { logger } from '../../../../../common'
import {
MOTHERSHIP_URL,
neverendingPromise,
tryFetch,
} from '../../../../../core'
import { ftpService } from '../FtpService'
@ -14,4 +15,6 @@ export async function ftp() {
await ftpService({
mothershipUrl: MOTHERSHIP_URL(),
})
await neverendingPromise()
}

View File

@ -5,7 +5,7 @@ import { SYSLOGD_PORT } from '../../../../../core'
import { InstanceLogger } from '../../../../../services'
export function syslog() {
return new Promise<void>((resolve) => {
return new Promise<void>((resolve, reject) => {
const logger = LoggerService().create(`EdgeSyslogCommand`)
const { dbg, error, info, warn } = logger
info(`Starting`)
@ -18,6 +18,7 @@ export function syslog() {
server.on('error', (err) => {
console.log(`Server error:\n${err.stack}`)
server.close()
reject(err)
})
server.on('message', (msg, rinfo) => {
@ -41,7 +42,6 @@ export function syslog() {
server.on('listening', () => {
const address = server.address()
info(`Server listening ${address.address}:${address.port}`)
resolve()
})
server.bind(PORT, HOST)

View File

@ -16,6 +16,7 @@ import {
IS_DEV,
MOTHERSHIP_NAME,
MOTHERSHIP_PORT,
neverendingPromise,
SSL_CERT,
SSL_KEY,
} from '../../../../../core'
@ -91,4 +92,6 @@ export const firewall = async () => {
https.createServer(httpsOptions, app).listen(443, () => {
dbg('HTTPS server running on port 443')
})
await neverendingPromise()
}

View File

@ -36,5 +36,8 @@ export async function schema() {
args.push(`--dev`)
}
dbg({ args })
bot.run(args)
const code = await bot.run(args)
if (code !== 0) {
error(`Failed to migrate schema ${code}`)
}
}

View File

@ -1,6 +1,6 @@
import { Command } from 'commander'
import { logger } from '../../../common'
import { LoggerService } from '../../../common'
import { neverendingPromise } from '../../../core'
import { daemon } from '../EdgeCommand/DaemonCommand/ServeCommand/daemon'
import { syslog } from '../EdgeCommand/SyslogCommand/ServeCommand/syslog'
import { firewall } from '../FirewallCommand/ServeCommand/firewall/server'
@ -22,6 +22,8 @@ export const ServeCommand = () => {
await mothership(options)
await daemon()
await firewall()
await neverendingPromise()
})
return cmd
}

View File

@ -1,4 +1,5 @@
import exitHook, { asyncExitHook as _, gracefulExit as __ } from 'exit-hook'
import { logger } from '../common'
export const asyncExitHook = (cb: () => Promise<void>) => _(cb, { wait: 5000 })
@ -9,3 +10,8 @@ export const gracefulExit = async (signal?: number) => {
})
}
export { exitHook }
export const neverendingPromise = () =>
new Promise((resolve) => {
logger().dbg('Neverending promise')
})