1use std::path::{Path, PathBuf};
2
3pub fn project_config(root: &Path) -> PathBuf {
4 root.join("tuff.config.json")
5}
6
7pub fn user_config(home: &Path) -> PathBuf {
8 std::env::var_os("XDG_CONFIG_HOME")
9 .map(PathBuf::from)
10 .unwrap_or_else(|| home.join(".config"))
11 .join("tuff")
12 .join("config.json")
13}
14
15pub fn user_cache(home: &Path) -> PathBuf {
16 std::env::var_os("XDG_CACHE_HOME")
17 .map(PathBuf::from)
18 .unwrap_or_else(|| home.join(".cache"))
19 .join("tuff")
20}
21
22pub fn user_state(home: &Path) -> PathBuf {
23 std::env::var_os("XDG_STATE_HOME")
24 .map(PathBuf::from)
25 .unwrap_or_else(|| home.join(".local").join("state"))
26 .join("tuff")
27}
28
29pub fn global_lockfile(home: &Path) -> PathBuf {
30 user_state(home).join("tuff.lock")
31}