Skip to content

Commit 6c104c0

Browse files
committed
Prevent exiting when an exception is uncaught
1 parent 5996701 commit 6c104c0

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

src/node/entry.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ import { SshProvider } from "./ssh/server"
1414
import { generateCertificate, generatePassword, generateSshHostKey, hash, open } from "./util"
1515
import { ipcMain, wrap } from "./wrapper"
1616

17+
process.on("uncaughtException", (error) => {
18+
logger.error(`Uncaught exception: ${error.message}`)
19+
if (typeof error.stack !== "undefined") {
20+
logger.error(error.stack)
21+
}
22+
})
23+
1724
let pkg: { version?: string; commit?: string } = {}
1825
try {
1926
pkg = require("../../package.json")
@@ -73,7 +80,7 @@ const main = async (args: Args): Promise<void> => {
7380

7481
logger.info(`code-server ${version} ${commit}`)
7582

76-
let sshPort = ""
83+
let sshPort: number | undefined
7784
if (!args["disable-ssh"] && options.sshHostKey) {
7885
const sshProvider = httpServer.registerHttpProvider("/ssh", SshProvider, options.sshHostKey as string)
7986
try {
@@ -84,7 +91,7 @@ const main = async (args: Args): Promise<void> => {
8491
}
8592

8693
const serverAddress = await httpServer.listen()
87-
logger.info(`Server listening on ${serverAddress}`)
94+
logger.info(`HTTP server listening on ${serverAddress}`)
8895

8996
if (auth === AuthType.Password && !process.env.PASSWORD) {
9097
logger.info(` - Password is ${originalPassword}`)
@@ -108,19 +115,19 @@ const main = async (args: Args): Promise<void> => {
108115
logger.info(" - Not serving HTTPS")
109116
}
110117

111-
logger.info(` - Automatic updates are ${update.enabled ? "enabled" : "disabled"}`)
118+
logger.info(`Automatic updates are ${update.enabled ? "enabled" : "disabled"}`)
112119

113-
if (sshPort) {
114-
logger.info(` - SSH Server - Listening :${sshPort}`)
120+
if (typeof sshPort !== "undefined") {
121+
logger.info(`SSH server listening on localhost:${sshPort}`)
115122
} else {
116-
logger.info(" - SSH Server - Disabled")
123+
logger.info("SSH server disabled")
117124
}
118125

119126
if (serverAddress && !options.socket && args.open) {
120127
// The web socket doesn't seem to work if browsing with 0.0.0.0.
121128
const openAddress = serverAddress.replace(/:\/\/0.0.0.0/, "://localhost")
122129
await open(openAddress).catch(console.error)
123-
logger.info(` - Opened ${openAddress}`)
130+
logger.info(`Opened ${openAddress}`)
124131
}
125132
}
126133

src/node/ssh/server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ export class SshProvider extends HttpProvider {
2424
})
2525
}
2626

27-
public async listen(): Promise<string> {
27+
public async listen(): Promise<number> {
2828
return new Promise((resolve, reject) => {
2929
this.sshServer.once("error", reject)
3030
this.sshServer.listen(() => {
31-
resolve(this.sshServer.address().port.toString())
31+
resolve(this.sshServer.address().port)
3232
})
3333
})
3434
}

0 commit comments

Comments
 (0)