确定此方法的一种方式是,Freedesktop 工具首先检查是否存在环境变量(XDG_CONFIG_HOME),如果不存在,再检查是否存在`$HOME/.config`文件夹。这就是`pyxdg`中的实现。我在这里提到了这一点[1]。
关于 Clojure CLI 特定环境的一个替代选择:虽然我个人更希望 XDG 优于 `.clojure`,但我宁愿选择这个特定的选项,而不是当前的情况,我只是以 Haskell#Stack 作为做到这一点的例子[1]。
原因在于,作为一个 XDG 用户,我的软件不只有 Clojure,我不想让 Clojure 决定我是否需要设置` XDG_CONFIG_HOME`变量。我认为这应该是反向的。我决定是否设置该变量,我决定是否利用 XDG,然后我安装 Clojure,也许会指示它是否尊重 XDG。我仍然希望不告诉 Clojure 最后的部分,但我理解这是妥协的结果。
请注意,那个 Archlinux 表格中的大多数其他例子都完成了全面迁移,其中将 `$HOME/.name-of-the-software`视为遗留版本,默认行为是遵循 XDG。
我认为从 Clojure 的角度来看,新的想法可能如下:
<xdg-config-path>/clojure 存在,且~/.clojude不存在?使用现有的。
<xdg-config-path>/clojure 不存在,且 ~/.clojure 存在?使用现有的。
但是在两者都存在的情况下......那就由你决定。
但如果不存任何事情?那你也由你决定 :D。
[1]
https://clojureverse.org/t/opinion-about-xdg-support-by-the-clojure-tools-deps-cli/9814/3?u=jgomo3[2] 在@sg-qwt 从 Archwiki 共享的表格中,搜索 Haskell#Stack:
https://wiki.archlinux.org/title/XDG_Base_Directory