是否有针对Windows的Mustache的独立,可移植命令行实现?

时间:2014-02-07 10:42:06

标签: mustache

是否有一个简单,独立,可移植的现有Mustache for Windows发行版,可以让我在mustache(1)手册中完全按照指定(或尽可能接近)调用Mustache?

cat data.yml template.mustache | mustache

我找不到任何解释如何以这种方式实际获取一个名为mustache使用胡须的可执行文件 - 在任何平台上,虽然我主要对Windows感兴趣现在

据我所知,胡子主页上列出的胡子的各种实现主要是库,而不是可以这种方式调用的独立应用程序。

理想情况下,我正在寻找的东西是:

  • 独立 - 我正在寻找可以从命令行调用的东西,而不是库。我计划在自动CI构建中生成输出。
  • 便携式 - 我应该能够将我需要的所有内容捆绑到源代码控制中,而无需预先安装任何内容(因为我的构建可能在许多构建代理中运行,我不希望维护多个代理程序上的预安装软件套件);我也无法连接到互联网下载库。理想情况下,便携式包装应该相当简单。

如果没有,那么我有兴趣尽可能接近 - 例如如果我必须预安装python但需要运行连接到互联网的安装程序。

我准备承认“没有预先安装”,如果我有一个地狱的猫有可能已经在我们的组织打包(例如python或ruby),而不是个别图书馆。

4 个答案:

答案 0 :(得分:0)

如果您在Windows机器上安装了Groovy,则可以运行此脚本:https://gist.github.com/agentgt/1bc5f14e62bce11e2ceb。您不需要下载任何其他内容,因为脚本会自动下载正确的依赖项,因此不会出现问题。

Groovy版本比Ruby版本略微更多的跨平台(尽管有人可能会争论),尽管它需要Java并且速度较慢。如果您的JVM商店通常不是问题。

您可以使用上面的脚本并将其转换为Java并创建单个可执行Jar,其中包含可在任何安装Java的地方使用的所有依赖项。如果有兴趣只是添加评论,我会做一个快速的项目。

答案 1 :(得分:0)

(完全披露:我是这个项目的维护者。)

我写了mo,这是胡子模板系统的Bash端口。它的主要警告是它使用环境变量而不是从hashCode()文件中读取。

.json

它也适用于数组,但Bash无法将数组导出到其他函数。因此,要使数组工作,您需要将另一个文件或源$ export name="John Doe" $ cat template.mo Hello {{name}}. {{^name2}}The variable name2 is not defined.{{/name2}} $ mo template.mo Hello John Doe. The variable name2 is not defined. 本身发送到环境中,然后调用mo函数。

存储库包含测试和示例,以帮助说明如何使用此工具。

答案 2 :(得分:0)

从文档中

  

安装

     

如果您安装了RubyGems:

     

宝石安装胡子

请参见https://mustache.github.io/mustache.1.html 页面底部

答案 3 :(得分:0)

我认为您可以使用可编译为本地可执行文件的Mustache实现之一。例如,这是Go client的预编译版本。

因此,将其安装到Linux服务器可能类似于:

GO_MUSTACHE_VERSION=1.2.0
curl -s -L -o /tmp/mustache.tgz https://github.com/cbroglie/mustache/releases/download/v${GO_MUSTACHE_VERSION}/mustache_${GO_MUSTACHE_VERSION}_linux_amd64.tar.gz
tar xvf /tmp/mustache.tgz -C path/to/installation