【问题标题】:Including extra directories with Keter包含 Keter 的额外目录
【发布时间】:2015-10-20 20:33:08
【问题描述】:

我有一个 Yesod 站点,并创建了一个处理程序来处理下载和执行约束。我的 Yesod 项目目录有一个名为 downloads 的子目录,其中包含我希望用户在登录后能够下载的文件。该处理程序在我的开发和暂存框中工作得很好,但在我转移到生产时会中断。我将问题追溯到yesod keter 在构建其捆绑包时未归档文件。

如何说服keter 包含该目录?

【问题讨论】:

  • 我忘记了确切的细节,但我认为yesod keter 的功能被另一个包所覆盖。也许有更多的配置选项?

标签: haskell yesod keter


【解决方案1】:

yesod keter 命令所做的只是创建一个.tar.gz 压缩存档文件,其扩展名为.keter,包含以下子目录:

  • config:源代码树中同名目录的精确副本
  • dist:包含一个子目录bin,其中包含您应用的二进制文件
  • static:源代码树中同名目录的精确副本

请注意,您的应用二进制文件的路径是通过exec 设置在config/keter.yml 中设置的,而静态文件的路径是通过root 设置设置的。如果您想查看源代码,yesod keter 命令包含的确切文件集在findFiles 函数中指定。

如果您想自定义.keter 文件的内容,最简单的方法可能是编写一个shell 脚本来创建存档。使用此脚本,您可以将任意额外目录添加到存档中。

模拟yesod keter 的行为所需的最低限度的 bash 脚本如下:

#!/bin/bash
tar cvf myapp.keter config/ dist/bin/ static/

您可以自定义它,但是您想生成正确的内容。将download/ 添加到此命令行的末尾应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多