diff options
Diffstat (limited to 'os/mod.ts')
| -rw-r--r-- | os/mod.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/os/mod.ts b/os/mod.ts new file mode 100644 index 000000000..a2bb0457b --- /dev/null +++ b/os/mod.ts @@ -0,0 +1,26 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. + +/** + * Returns the current user's home directory. + * On Unix, including macOS, it returns the $HOME environment variable. + * On Windows, it returns %USERPROFILE%. + * Needs permissions to access env (--allow-env). + * + * Ported from Go: https://github.com/golang/go/blob/go1.12.5/src/os/file.go#L389 + */ +export function userHomeDir(): string { + let env = "HOME"; + let envErr = "$HOME"; + + if (Deno.platform.os === "win") { + env = "USERPROFILE"; + envErr = "%USERPROFILE%"; + } + + const value = Deno.env()[env]; + if (value !== "") { + return value; + } + + throw new Error(`Environment variable '${envErr}' is not defined.`); +} |
