mirror of https://github.com/coder/code-server.git
Prevent exiting when an exception is uncaught
This commit is contained in:
parent
599670136d
commit
6c104c016e
|
@ -14,6 +14,13 @@ import { SshProvider } from "./ssh/server"
|
||||||
import { generateCertificate, generatePassword, generateSshHostKey, hash, open } from "./util"
|
import { generateCertificate, generatePassword, generateSshHostKey, hash, open } from "./util"
|
||||||
import { ipcMain, wrap } from "./wrapper"
|
import { ipcMain, wrap } from "./wrapper"
|
||||||
|
|
||||||
|
process.on("uncaughtException", (error) => {
|
||||||
|
logger.error(`Uncaught exception: ${error.message}`)
|
||||||
|
if (typeof error.stack !== "undefined") {
|
||||||
|
logger.error(error.stack)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
let pkg: { version?: string; commit?: string } = {}
|
let pkg: { version?: string; commit?: string } = {}
|
||||||
try {
|
try {
|
||||||
pkg = require("../../package.json")
|
pkg = require("../../package.json")
|
||||||
|
@ -73,7 +80,7 @@ const main = async (args: Args): Promise<void> => {
|
||||||
|
|
||||||
logger.info(`code-server ${version} ${commit}`)
|
logger.info(`code-server ${version} ${commit}`)
|
||||||
|
|
||||||
let sshPort = ""
|
let sshPort: number | undefined
|
||||||
if (!args["disable-ssh"] && options.sshHostKey) {
|
if (!args["disable-ssh"] && options.sshHostKey) {
|
||||||
const sshProvider = httpServer.registerHttpProvider("/ssh", SshProvider, options.sshHostKey as string)
|
const sshProvider = httpServer.registerHttpProvider("/ssh", SshProvider, options.sshHostKey as string)
|
||||||
try {
|
try {
|
||||||
|
@ -84,7 +91,7 @@ const main = async (args: Args): Promise<void> => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const serverAddress = await httpServer.listen()
|
const serverAddress = await httpServer.listen()
|
||||||
logger.info(`Server listening on ${serverAddress}`)
|
logger.info(`HTTP server listening on ${serverAddress}`)
|
||||||
|
|
||||||
if (auth === AuthType.Password && !process.env.PASSWORD) {
|
if (auth === AuthType.Password && !process.env.PASSWORD) {
|
||||||
logger.info(` - Password is ${originalPassword}`)
|
logger.info(` - Password is ${originalPassword}`)
|
||||||
|
@ -108,19 +115,19 @@ const main = async (args: Args): Promise<void> => {
|
||||||
logger.info(" - Not serving HTTPS")
|
logger.info(" - Not serving HTTPS")
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(` - Automatic updates are ${update.enabled ? "enabled" : "disabled"}`)
|
logger.info(`Automatic updates are ${update.enabled ? "enabled" : "disabled"}`)
|
||||||
|
|
||||||
if (sshPort) {
|
if (typeof sshPort !== "undefined") {
|
||||||
logger.info(` - SSH Server - Listening :${sshPort}`)
|
logger.info(`SSH server listening on localhost:${sshPort}`)
|
||||||
} else {
|
} else {
|
||||||
logger.info(" - SSH Server - Disabled")
|
logger.info("SSH server disabled")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverAddress && !options.socket && args.open) {
|
if (serverAddress && !options.socket && args.open) {
|
||||||
// The web socket doesn't seem to work if browsing with 0.0.0.0.
|
// The web socket doesn't seem to work if browsing with 0.0.0.0.
|
||||||
const openAddress = serverAddress.replace(/:\/\/0.0.0.0/, "://localhost")
|
const openAddress = serverAddress.replace(/:\/\/0.0.0.0/, "://localhost")
|
||||||
await open(openAddress).catch(console.error)
|
await open(openAddress).catch(console.error)
|
||||||
logger.info(` - Opened ${openAddress}`)
|
logger.info(`Opened ${openAddress}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,11 +24,11 @@ export class SshProvider extends HttpProvider {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public async listen(): Promise<string> {
|
public async listen(): Promise<number> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.sshServer.once("error", reject)
|
this.sshServer.once("error", reject)
|
||||||
this.sshServer.listen(() => {
|
this.sshServer.listen(() => {
|
||||||
resolve(this.sshServer.address().port.toString())
|
resolve(this.sshServer.address().port)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue