import * as path from "path" import { logger, Level } from "@coder/logger" import { Args as VsArgs } from "../../lib/vscode/src/vs/server/ipc" import { AuthType } from "./http" import { xdgLocalDir } from "./util" export interface Args extends VsArgs { auth?: AuthType "base-path"?: string cert?: string "cert-key"?: string format?: string host?: string json?: boolean open?: boolean port?: string socket?: string version?: boolean _: string[] } // TODO: Implement proper CLI parser. export const parse = (): Args => { const last = process.argv[process.argv.length - 1] const userDataDir = xdgLocalDir const verbose = process.argv.includes("--verbose") const trace = process.argv.includes("--trace") if (verbose || trace) { process.env.LOG_LEVEL = "trace" logger.level = Level.Trace } return { "extensions-dir": path.join(userDataDir, "extensions"), "user-data-dir": userDataDir, _: last && !last.startsWith("-") ? [last] : [], json: process.argv.includes("--json"), log: process.env.LOG_LEVEL, trace, verbose, version: process.argv.includes("--version"), } }