Adhere to XDG base directory spec for dataDir and logDir (#156)
This commit is contained in:
parent
e22e2c8b67
commit
30d14eeab4
@ -12,7 +12,7 @@ import { requireModule, requireFork, forkModule } from "./vscode/bootstrapFork";
|
|||||||
import { SharedProcess, SharedProcessState } from "./vscode/sharedProcess";
|
import { SharedProcess, SharedProcessState } from "./vscode/sharedProcess";
|
||||||
import { setup as setupNativeModules } from "./modules";
|
import { setup as setupNativeModules } from "./modules";
|
||||||
import { fillFs } from "./fill";
|
import { fillFs } from "./fill";
|
||||||
import { isCli, serveStatic, buildDir } from "./constants";
|
import { isCli, serveStatic, buildDir, dataHome, cacheHome } from "./constants";
|
||||||
import opn = require("opn");
|
import opn = require("opn");
|
||||||
|
|
||||||
export class Entry extends Command {
|
export class Entry extends Command {
|
||||||
@ -49,7 +49,7 @@ export class Entry extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { args, flags } = this.parse(Entry);
|
const { args, flags } = this.parse(Entry);
|
||||||
const dataDir = path.resolve(flags["data-dir"] || path.join(os.homedir(), ".code-server"));
|
const dataDir = path.resolve(flags["data-dir"] || path.join(dataHome, "code-server"));
|
||||||
const workingDir = path.resolve(args["workdir"]);
|
const workingDir = path.resolve(args["workdir"]);
|
||||||
|
|
||||||
setupNativeModules(dataDir);
|
setupNativeModules(dataDir);
|
||||||
@ -81,7 +81,11 @@ export class Entry extends Command {
|
|||||||
fs.mkdirSync(dataDir);
|
fs.mkdirSync(dataDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
const logDir = path.join(dataDir, "logs", new Date().toISOString().replace(/[-:.TZ]/g, ""));
|
if (!fs.existsSync(cacheHome)) {
|
||||||
|
fs.mkdirSync(cacheHome);
|
||||||
|
}
|
||||||
|
|
||||||
|
const logDir = path.join(cacheHome, "code-server/logs", new Date().toISOString().replace(/[-:.TZ]/g, ""));
|
||||||
process.env.VSCODE_LOGS = logDir;
|
process.env.VSCODE_LOGS = logDir;
|
||||||
|
|
||||||
const certPath = flags.cert ? path.resolve(flags.cert) : undefined;
|
const certPath = flags.cert ? path.resolve(flags.cert) : undefined;
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
|
import * as os from "os";
|
||||||
|
|
||||||
export const isCli = typeof process.env.CLI !== "undefined" && process.env.CLI !== "false";
|
export const isCli = typeof process.env.CLI !== "undefined" && process.env.CLI !== "false";
|
||||||
export const serveStatic = typeof process.env.SERVE_STATIC !== "undefined" && process.env.SERVE_STATIC !== "false";
|
export const serveStatic = typeof process.env.SERVE_STATIC !== "undefined" && process.env.SERVE_STATIC !== "false";
|
||||||
export const buildDir = process.env.BUILD_DIR ? path.resolve(process.env.BUILD_DIR) : "";
|
export const buildDir = process.env.BUILD_DIR ? path.resolve(process.env.BUILD_DIR) : "";
|
||||||
|
const xdgResolve = (primary: string | undefined, fallback: string): string => {
|
||||||
|
return primary ? path.resolve(primary) : path.resolve(process.env.HOME || os.homedir(), fallback);
|
||||||
|
};
|
||||||
|
export const dataHome = xdgResolve(process.env.XDG_DATA_HOME, ".local/share");
|
||||||
|
export const cacheHome = xdgResolve(process.env.XDG_CACHE_HOME, ".cache");
|
||||||
|
Reference in New Issue
Block a user