2024 年 Clojure 问卷调查! 中分享您的看法。

欢迎!有关如何操作的更多信息,请参阅 关于 页面。

+1 点赞
tools.deps

当前用户缓存可以通过 CLJ_CACHE 或 CLJCONFIG 环境变量定制(以及 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
`

2 个答案

0 点赞

评论者:juskrey

很抱歉,找不到该 bash 脚本的源代码库,因此未附加补丁文件。

0 点赞
参考:https://clojure.atlassian.net/browse/TDEPS-119(由 juskrey 报告)
...