Default app-name once

This commit is contained in:
Asher 2026-03-11 13:12:38 -08:00
parent 2a1bfc86f8
commit efbbd797bb
No known key found for this signature in database
GPG key ID: D63C1EF81242354A
6 changed files with 17 additions and 12 deletions

View file

@ -519,6 +519,7 @@ export interface DefaultedArgs extends ConfigArgs {
"extensions-dir": string
"user-data-dir": string
"session-socket": string
"app-name": string
/* Positional arguments. */
_: string[]
}
@ -665,6 +666,10 @@ export async function setDefaults(cliArgs: UserProvidedArgs, configArgs?: Config
}
args["proxy-domain"] = finalProxies
if (!args["app-name"]) {
args["app-name"] = "code-server"
}
args._ = getResolvedPathsFromArgs(args)
return {

View file

@ -58,7 +58,7 @@ export const errorHandler: express.ErrorRequestHandler = async (err, req, res, n
.replace(/{{ERROR_TITLE}}/g, statusCode.toString())
.replace(/{{ERROR_HEADER}}/g, statusCode.toString())
.replace(/{{ERROR_BODY}}/g, escapeHtml(err.message))
.replace(/{{APP_NAME}}/g, (req.args && req.args["app-name"]) || "code-server"),
.replace(/{{APP_NAME}}/g, req.args["app-name"]),
)
} else {
res.json({

View file

@ -29,8 +29,7 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
const content = await fs.readFile(path.join(rootPath, "src/browser/pages/login.html"), "utf8")
const locale = req.args["locale"] || "en"
i18n.changeLanguage(locale)
const appName = req.args["app-name"] || "code-server"
const welcomeText = req.args["welcome-text"] || (i18n.t("WELCOME", { app: appName }) as string)
const welcomeText = req.args["welcome-text"] || (i18n.t("WELCOME", { app: req.args["app-name"] }) as string)
// Determine password message using i18n
let passwordMsg = i18n.t("LOGIN_PASSWORD", { configFile: req.args.config })
@ -43,7 +42,7 @@ const getRoot = async (req: Request, error?: Error): Promise<string> => {
return replaceTemplates(
req,
content
.replace(/{{I18N_LOGIN_TITLE}}/g, i18n.t("LOGIN_TITLE", { app: appName }))
.replace(/{{I18N_LOGIN_TITLE}}/g, i18n.t("LOGIN_TITLE", { app: req.args["app-name"] }))
.replace(/{{WELCOME_TEXT}}/g, welcomeText)
.replace(/{{PASSWORD_MSG}}/g, passwordMsg)
.replace(/{{I18N_LOGIN_BELOW}}/g, i18n.t("LOGIN_BELOW"))

View file

@ -172,7 +172,6 @@ router.get("/", ensureVSCodeLoaded, async (req, res, next) => {
})
router.get("/manifest.json", async (req, res) => {
const appName = req.args["app-name"] || "code-server"
res.writeHead(200, { "Content-Type": "application/manifest+json" })
res.end(
@ -180,8 +179,8 @@ router.get("/manifest.json", async (req, res) => {
req,
JSON.stringify(
{
name: appName,
short_name: appName,
name: req.args["app-name"],
short_name: req.args["app-name"],
start_url: ".",
display: "fullscreen",
display_override: ["window-controls-overlay"],

View file

@ -38,6 +38,7 @@ const defaults = {
"extensions-dir": path.join(paths.data, "extensions"),
"user-data-dir": paths.data,
"session-socket": path.join(paths.data, "code-server-ipc.sock"),
"app-name": "code-server",
_: [],
}

View file

@ -1,4 +1,5 @@
import express from "express"
import { UserProvidedArgs, setDefaults } from "../../../../src/node/cli"
import { errorHandler } from "../../../../src/node/routes/errors"
describe("error page is rendered for text/html requests", () => {
@ -9,7 +10,7 @@ describe("error page is rendered for text/html requests", () => {
statusCode: 404,
message: ";>hello<script>alert(1)</script>",
}
const req = createRequest()
const req = await createRequest()
const res = {
status: jest.fn().mockReturnValue(this),
send: jest.fn().mockReturnValue(this),
@ -26,7 +27,7 @@ describe("error page is rendered for text/html requests", () => {
statusCode: 404,
message: "Not found",
}
const req = createRequest({ "app-name": "MyCodeServer" })
const req = await createRequest({ "app-name": "MyCodeServer" })
const res = {
status: jest.fn().mockReturnValue(this),
send: jest.fn().mockReturnValue(this),
@ -42,7 +43,7 @@ describe("error page is rendered for text/html requests", () => {
statusCode: 500,
message: "Internal error",
}
const req = createRequest()
const req = await createRequest()
const res = {
status: jest.fn().mockReturnValue(this),
send: jest.fn().mockReturnValue(this),
@ -54,7 +55,7 @@ describe("error page is rendered for text/html requests", () => {
})
})
function createRequest(args?: Record<string, string>): express.Request {
async function createRequest(args: UserProvidedArgs = {}): Promise<express.Request> {
return {
headers: {
accept: ["text/html"],
@ -63,6 +64,6 @@ function createRequest(args?: Record<string, string>): express.Request {
query: {
to: "test",
},
args: args,
args: await setDefaults(args),
} as unknown as express.Request
}