Skip to content

Commit efbbd79

Browse files
committed
Default app-name once
1 parent 2a1bfc8 commit efbbd79

File tree

6 files changed

+17
-12
lines changed

6 files changed

+17
-12
lines changed

src/node/cli.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ export interface DefaultedArgs extends ConfigArgs {
519519
"extensions-dir": string
520520
"user-data-dir": string
521521
"session-socket": string
522+
"app-name": string
522523
/* Positional arguments. */
523524
_: string[]
524525
}
@@ -665,6 +666,10 @@ export async function setDefaults(cliArgs: UserProvidedArgs, configArgs?: Config
665666
}
666667
args["proxy-domain"] = finalProxies
667668

669+
if (!args["app-name"]) {
670+
args["app-name"] = "code-server"
671+
}
672+
668673
args._ = getResolvedPathsFromArgs(args)
669674

670675
return {

src/node/routes/errors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export const errorHandler: express.ErrorRequestHandler = async (err, req, res, n
5858
.replace(/{{ERROR_TITLE}}/g, statusCode.toString())
5959
.replace(/{{ERROR_HEADER}}/g, statusCode.toString())
6060
.replace(/{{ERROR_BODY}}/g, escapeHtml(err.message))
61-
.replace(/{{APP_NAME}}/g, (req.args && req.args["app-name"]) || "code-server"),
61+
.replace(/{{APP_NAME}}/g, req.args["app-name"]),
6262
)
6363
} else {
6464
res.json({

src/node/routes/login.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
2929
const content = await fs.readFile(path.join(rootPath, "src/browser/pages/login.html"), "utf8")
3030
const locale = req.args["locale"] || "en"
3131
i18n.changeLanguage(locale)
32-
const appName = req.args["app-name"] || "code-server"
33-
const welcomeText = req.args["welcome-text"] || (i18n.t("WELCOME", { app: appName }) as string)
32+
const welcomeText = req.args["welcome-text"] || (i18n.t("WELCOME", { app: req.args["app-name"] }) as string)
3433

3534
// Determine password message using i18n
3635
let passwordMsg = i18n.t("LOGIN_PASSWORD", { configFile: req.args.config })
@@ -43,7 +42,7 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
4342
return replaceTemplates(
4443
req,
4544
content
46-
.replace(/{{I18N_LOGIN_TITLE}}/g, i18n.t("LOGIN_TITLE", { app: appName }))
45+
.replace(/{{I18N_LOGIN_TITLE}}/g, i18n.t("LOGIN_TITLE", { app: req.args["app-name"] }))
4746
.replace(/{{WELCOME_TEXT}}/g, welcomeText)
4847
.replace(/{{PASSWORD_MSG}}/g, passwordMsg)
4948
.replace(/{{I18N_LOGIN_BELOW}}/g, i18n.t("LOGIN_BELOW"))

src/node/routes/vscode.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,15 @@ router.get("/", ensureVSCodeLoaded, async (req, res, next) => {
172172
})
173173

174174
router.get("/manifest.json", async (req, res) => {
175-
const appName = req.args["app-name"] || "code-server"
176175
res.writeHead(200, { "Content-Type": "application/manifest+json" })
177176

178177
res.end(
179178
replaceTemplates(
180179
req,
181180
JSON.stringify(
182181
{
183-
name: appName,
184-
short_name: appName,
182+
name: req.args["app-name"],
183+
short_name: req.args["app-name"],
185184
start_url: ".",
186185
display: "fullscreen",
187186
display_override: ["window-controls-overlay"],

test/unit/node/cli.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const defaults = {
3838
"extensions-dir": path.join(paths.data, "extensions"),
3939
"user-data-dir": paths.data,
4040
"session-socket": path.join(paths.data, "code-server-ipc.sock"),
41+
"app-name": "code-server",
4142
_: [],
4243
}
4344

test/unit/node/routes/errors.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import express from "express"
2+
import { UserProvidedArgs, setDefaults } from "../../../../src/node/cli"
23
import { errorHandler } from "../../../../src/node/routes/errors"
34

45
describe("error page is rendered for text/html requests", () => {
@@ -9,7 +10,7 @@ describe("error page is rendered for text/html requests", () => {
910
statusCode: 404,
1011
message: ";>hello<script>alert(1)</script>",
1112
}
12-
const req = createRequest()
13+
const req = await createRequest()
1314
const res = {
1415
status: jest.fn().mockReturnValue(this),
1516
send: jest.fn().mockReturnValue(this),
@@ -26,7 +27,7 @@ describe("error page is rendered for text/html requests", () => {
2627
statusCode: 404,
2728
message: "Not found",
2829
}
29-
const req = createRequest({ "app-name": "MyCodeServer" })
30+
const req = await createRequest({ "app-name": "MyCodeServer" })
3031
const res = {
3132
status: jest.fn().mockReturnValue(this),
3233
send: jest.fn().mockReturnValue(this),
@@ -42,7 +43,7 @@ describe("error page is rendered for text/html requests", () => {
4243
statusCode: 500,
4344
message: "Internal error",
4445
}
45-
const req = createRequest()
46+
const req = await createRequest()
4647
const res = {
4748
status: jest.fn().mockReturnValue(this),
4849
send: jest.fn().mockReturnValue(this),
@@ -54,7 +55,7 @@ describe("error page is rendered for text/html requests", () => {
5455
})
5556
})
5657

57-
function createRequest(args?: Record<string, string>): express.Request {
58+
async function createRequest(args: UserProvidedArgs = {}): Promise<express.Request> {
5859
return {
5960
headers: {
6061
accept: ["text/html"],
@@ -63,6 +64,6 @@ function createRequest(args?: Record<string, string>): express.Request {
6364
query: {
6465
to: "test",
6566
},
66-
args: args,
67+
args: await setDefaults(args),
6768
} as unknown as express.Request
6869
}

0 commit comments

Comments
 (0)