summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp A <flying-sheep@web.de>2019-02-13 14:57:00 +0100
committerRyan Dahl <ry@tinyclouds.org>2019-02-13 08:57:00 -0500
commite782ba1a6fd8342cddd961da9274dbd0244685d1 (patch)
treeb90bb6e75169ae6e122f8a2a05dbcde8c2ddb1e0 /src
parentc468be64ed6cc3d3d3c2a74f15ba1157082f0f5b (diff)
Use proper directory for cache files (#1763)
Operating systems have defined directories for cache files. That allows them to do smart things such as leaving them out when doing a backup, or deleting them when disk space gets low. Also a %home%\.deno folder on windows made no sense whatsoever. Fixes #481
Diffstat (limited to 'src')
-rw-r--r--src/deno_dir.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/deno_dir.rs b/src/deno_dir.rs
index 9d175077a..bcde87927 100644
--- a/src/deno_dir.rs
+++ b/src/deno_dir.rs
@@ -63,7 +63,13 @@ impl DenoDir {
) -> std::io::Result<Self> {
// Only setup once.
let home_dir = dirs::home_dir().expect("Could not get home directory.");
- let default = home_dir.join(".deno");
+ let fallback = home_dir.join(".deno");
+ // We use the OS cache dir because all files deno writes are cache files
+ // Once that changes we need to start using different roots if DENO_DIR
+ // is not set, and keep a single one if it is.
+ let default = dirs::cache_dir()
+ .map(|d| d.join("deno"))
+ .unwrap_or(fallback);
let root: PathBuf = custom_root.unwrap_or(default);
let gen = root.as_path().join("gen");