Skip to content

Commit 5e22144

Browse files
committed
fix: respect DENO_DIR and XDG_* environment variables for fs cache
1 parent 7bded90 commit 5e22144

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

src/utils/info.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,33 @@ export function getConfigPaths() {
55
const homeDir = Deno.build.os == "windows"
66
? Deno.env.get("USERPROFILE")!
77
: Deno.env.get("HOME")!;
8-
const configDir = join(homeDir, ".deno", "deployctl");
8+
const xdgCacheDir = Deno.env.get("XDG_CACHE_HOME");
9+
const xdgConfigDir = Deno.env.get("XDG_CONFIG_HOME");
10+
11+
const denoDir = Deno.env.get("DENO_DIR") || join(homeDir, ".deno");
12+
const cacheDir = join(
13+
xdgCacheDir ? join(xdgCacheDir, "deno") : denoDir,
14+
"deployctl",
15+
);
16+
const configDir = join(
17+
xdgConfigDir ? join(xdgConfigDir, "deno") : denoDir,
18+
"deployctl",
19+
);
920

1021
return {
22+
cacheDir,
1123
configDir,
12-
updatePath: join(configDir, "update.json"),
13-
credentialsPath: join(configDir, "credentials.json"),
24+
updatePath: join(cacheDir, "update.json"),
25+
credentialsPath: join(cacheDir, "credentials.json"),
1426
};
1527
}
1628

1729
export async function fetchReleases() {
1830
try {
1931
const { latest } = await getVersions();
2032
const updateInfo = { lastFetched: Date.now(), latest };
21-
const { updatePath, configDir } = getConfigPaths();
22-
await Deno.mkdir(configDir, { recursive: true });
33+
const { updatePath, cacheDir } = getConfigPaths();
34+
await Deno.mkdir(cacheDir, { recursive: true });
2335
await Deno.writeFile(
2436
updatePath,
2537
new TextEncoder().encode(JSON.stringify(updateInfo, null, 2)),

src/utils/token_storage/fs.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ export async function get(): Promise<string | null> {
2727
}
2828

2929
export async function store(token: string): Promise<void> {
30-
const { credentialsPath, configDir } = getConfigPaths();
31-
await Deno.mkdir(configDir, { recursive: true });
30+
const { credentialsPath, cacheDir } = getConfigPaths();
31+
await Deno.mkdir(cacheDir, { recursive: true });
3232
await Deno.writeTextFile(
3333
credentialsPath,
3434
JSON.stringify({ token }, null, 2),
@@ -38,8 +38,8 @@ export async function store(token: string): Promise<void> {
3838
}
3939

4040
export async function remove(): Promise<void> {
41-
const { credentialsPath, configDir } = getConfigPaths();
42-
await Deno.mkdir(configDir, { recursive: true });
41+
const { credentialsPath, cacheDir } = getConfigPaths();
42+
await Deno.mkdir(cacheDir, { recursive: true });
4343
await Deno.writeTextFile(credentialsPath, "{}", { mode: 0o600 });
4444
return Promise.resolve();
4545
}

0 commit comments

Comments
 (0)