我有一个 Clojure 应用程序,它处理我们公司的一些数据。所以我想获得它的定制抛出.myapp.clj
文件或类似的东西的可能性。
它必须是一个简单的clojure脚本,用户可以在其中定义自己的数据处理原理。他还必须有可能调整 http 后端和其他应用程序部分。
那么,实现此文件的最佳方法是什么?
有几种方法会随着复杂程度的不同而浮现在脑海中。最简单的方法是让每个用户~/.myall.clj
在他们的主目录中定义一个,然后程序的开头将包含一行:
(def per-user-config (load-file "~/.myall.clj"))
load-file
读取文件并返回文件中读取的最后一个表单。这使您可以很好地编写配置文件。例如,您可以制作一个公司范围的模板,其中包含诸如之类的符号user-name
,然后从定义用户名的每个用户配置文件中加载它,然后调用load-file
模板
配置模板.clj:
{:app-name "foo"
:user-url (str "http://server.company:8080/users/" user-name)
:foo "bar"}
乔斯-config.clj:
(def user-name "joe")
(load-file "resources/global-config.clj")
这允许您通过 git 分发大部分配置,同时仍然允许用户覆盖配置的任意部分。