generated from justjavac/deno_starter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mod.ts
34 lines (30 loc) · 1.17 KB
/
mod.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/** Returns the path to the user's config directory.
*
* The returned value depends on the operating system and is either a string,
* containing a value from the following table, or `null`.
*
* |Platform | Value | Example |
* | ------- | ------------------------------------- | ------------------------------------ |
* | Linux | `$XDG_CONFIG_HOME` or `$HOME`/.config | /home/justjavac/.config |
* | macOS | `$HOME`/Library/Preferences | /Users/justjavac/Library/Preferences |
* | Windows | `{FOLDERID_RoamingAppData}` | C:\Users\justjavac\AppData\Roaming |
*/
export default function configDir(): string | null {
switch (Deno.build.os) {
case "linux": {
const xdg = Deno.env.get("XDG_CONFIG_HOME");
if (xdg) return xdg;
const home = Deno.env.get("HOME");
if (home) return `${home}/.config`;
break;
}
case "darwin": {
const home = Deno.env.get("HOME");
if (home) return `${home}/Library/Preferences`;
break;
}
case "windows":
return Deno.env.get("FOLDERID_RoamingAppData") ?? null;
}
return null;
}