使用 Keter 包含额外的目录
Including extra directories with Keter
我有一个 Yesod 站点并创建了一个处理程序来处理下载和强制约束。我的 Yesod 项目目录有一个名为 downloads
的子目录,它包含我希望用户在登录后能够下载的文件。该处理程序在我的开发和暂存箱中运行良好,但在我转移到生产。我将问题追溯到 yesod keter
在构建捆绑包时未归档文件。
如何说服 keter
包含该目录?
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/
添加到此命令行的末尾应该可以解决问题。
我有一个 Yesod 站点并创建了一个处理程序来处理下载和强制约束。我的 Yesod 项目目录有一个名为 downloads
的子目录,它包含我希望用户在登录后能够下载的文件。该处理程序在我的开发和暂存箱中运行良好,但在我转移到生产。我将问题追溯到 yesod keter
在构建捆绑包时未归档文件。
如何说服 keter
包含该目录?
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/
添加到此命令行的末尾应该可以解决问题。