当前用户缓存可以通过 CLJ_CACHE 或 CLJ Costume (以及 XDG..) 环境变量来自定义,
但在项目目录内部,路径是由以下 clojure 工具 bash 脚本中的代码设置的:
`
确定是否使用用户或项目缓存
if [[ -f deps.edn ]]; then
cache_dir=.cpcache
else
cache_dir="$user_cache_dir"
fi
`
这实际上使在写保护的文件系统上运行 deps.edn 项目成为不可能。
当前的覆盖方法是通过重命名 deps.edn 并通过例如 "-Sdeps $(cat xdeps.edn)" 来加载它,
使用 CLJ_CACHE 环境变量,这反过来可能会创建其他连锁问题,特别是在像 systemd 这样的引号敏感环境中。
提案:引入可选环境变量,用于项目缓存位置,例如
`
确定是否使用用户或项目缓存
if [[ -f deps.edn ]]; then
if [[ -n "$CLJ_PROJECT_CACHE" ]]; then
cache_dir="$CLJ_PROJECT_CACHE"
elif [[ -n "$XDG_PROJECT_CACHE" ]]; then
cache_dir="$XDG_PROJECT_CACHE"
else
cache_dir=.cpcache
fi
else
cache_dir="$user_cache_dir"
fi
`