Clojure:将Clojure文件转换为YAML

Clojure:将Clojure文件转换为YAML,clojure,yaml,Clojure,Yaml,如何将clojure源文件转换为YAML?我已经在interactive REPL中使用了该库,但我想将其自动化,以便传入输入文件并指定输出,即: clj2yaml input.clj > output.yml 您已经知道如何编写clojure转换器,现在只需要将其打包为一个独立的应用程序,并可能创建一个仅调用您的类的sh脚本 另一种选择是,如果您在*nix环境中: #^:shebang '[ exec java -cp "$HOME/src/clj/clojure/clojure.j

如何将clojure源文件转换为YAML?我已经在interactive REPL中使用了该库,但我想将其自动化,以便传入输入文件并指定输出,即:

clj2yaml input.clj > output.yml 

您已经知道如何编写clojure转换器,现在只需要将其打包为一个独立的应用程序,并可能创建一个仅调用您的类的sh脚本

另一种选择是,如果您在*nix环境中:

#^:shebang '[
exec java -cp "$HOME/src/clj/clojure/clojure.jar" clojure.lang.Script "$0" -- "$@"
]
(your code here)

据我所知,你需要帮助读写这些文件?!见和。有关读取YAML配置文件并使用clj YAML对其进行解析的真实示例,请参阅

下面是一个简单clojure工具的实现,用于进行转换:

(ns sample
    (:require [clj-yaml.core :as yaml]))

(->> (slurp (nth *command-line-args* 0))
     read-string ; converts the file content to a clojure datastructure
     yaml/generate-string
     (spit (nth *command-line-args* 1)))
(在Windows上)我可以创建一个名为clj2yaml.bat的批处理文件,使其易于使用。它假定所需的jar文件位于当前目录中。对于这种执行,我只是个新手,所以很可能会有更好的脚本,但这里是:

java.exe -cp .\clojure-1.2.0.jar;.\clojure-contrib-1.2.0.jar;.\clj-yaml-0.3.0-20101010.033133-1.jar;.\snakeyaml-1.5.jar clojure.main sample.clj %*

我现在可以执行
clj2yaml-foo.clj-foo.yaml
来创建yaml文件。

我应该补充一点,当基本上粘贴字符串时,我可以在交互式REPL中转换它。我对clojure知识的缺乏限制了我如何使用clojure实际读取、转换和写出转换后的数据。感谢您的回复查看
lein exec
插件;非常适合这个