Skip to content

Commit 6bec5a6

Browse files
committed
Fix Windows data location
1 parent 29132fb commit 6bec5a6

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

src/hooks/useConfig.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,32 @@ function platform_cache_default() {
3030
}
3131
}
3232

33+
function platform_data_home_default() {
34+
switch (host().platform) {
35+
case 'darwin':
36+
return Path.home().join("Library/Application Support")
37+
case 'windows': {
38+
const LOCALAPPDATA = Deno.env.get('LOCALAPPDATA')
39+
if (LOCALAPPDATA) {
40+
return new Path(LOCALAPPDATA).join("pkgx")
41+
} else {
42+
return Path.home().join("AppData/Local/pkgx")
43+
}}
44+
default:
45+
return Path.home().join(".local/share")
46+
}
47+
}
48+
3349
const SEP = Deno.build.os == 'windows' ? ';' : ':'
3450

3551
export function ConfigDefault(env = Deno.env.toObject()): Config {
3652
const prefix = flatmap(env['PKGX_DIR']?.trim(), x => new Path(x)) ?? Path.home().join('.pkgx')
3753
const pantries = env['PKGX_PANTRY_PATH']?.split(SEP).compact(x => flatmap(x.trim(), x => Path.abs(x) ?? Path.cwd().join(x))) ?? []
38-
const cache = (flatmap(env["XDG_CACHE_HOME"], x => new Path(x)) ?? platform_cache_default()).join("pkgx")
54+
const cache = (flatmap(env["XDG_CACHE_HOME"], Path.abs) ?? platform_cache_default()).join("pkgx")
55+
const data = (flatmap(env["XDG_DATA_HOME"], Path.abs) ?? platform_data_home_default()).join("pkgx")
3956
const isCI = boolize(env['CI']) ?? false
4057
const UserAgent = flatmap(getv(), v => `libpkgx/${v}`) ?? 'libpkgx'
4158

42-
const data = (() => {
43-
const xdg = env["XDG_DATA_HOME"]
44-
if (xdg) {
45-
return new Path(xdg)
46-
} else if (host().platform == "darwin") {
47-
return Path.home().join("Library/Application Support")
48-
} else {
49-
return Path.home().join(".local/share")
50-
}
51-
})().join("pkgx")
52-
5359
//TODO prefer 'xz' on Linux (as well) if supported
5460
const compression = !isCI && host().platform == 'darwin' ? 'xz' : 'gz'
5561

0 commit comments

Comments
 (0)