我正在尝试为不需要编译的应用程序创建一个自制公式。我尝试过浏览公式食谱,但我缺少一些使事情正常工作的东西。下面是我使用更通用文件名的用例。
容器内部有两个文件:一个是应用程序的脚本,另一个是手册页文件。我们将使用以下文件名来保持通用:
- myapp.py(可执行脚本)
- resources.txt(脚本需要的资源文件)
- myapp.1(手册页)
将它们放入正确位置的最佳方法是什么?假设我有能力修改脚本中的代码以选择加载资源的位置。
Thanks.
您可以在安装时修改脚本以使用资源的正确位置,也可以假设它位于同一目录中,然后让 Homebrew 为您发挥作用。我为后一种情况编写了一个示例公式另一个答案 https://stackoverflow.com/a/45187108/735926.
以下是满足您需求的样子:
class Foo < Formula
desc "Blah blah"
url "https://github.com/foo/foo/archive/master.zip"
version "1.2.3"
def install
man1.install "myapp.1"
libexec.install Dir["*"]
bin.write_exec_script (libexec/"myapp.py")
end
end
它安装myapp.1
在正确的目录中。您还可以使用man2
, man3
等其他man
目录。
然后它会安装下面的所有剩余文件libexec
然后创建一个exec
脚本在bin/myapp.py
。这将是一个简单的 shell 脚本exec
你的脚本在libexec
。这样,您的脚本将从libexec
从而能够找到resource.txt
位于同一目录中。
如果你想称呼它myapp
并不是myapp.py
它看起来像这样:
def install
man1.install "myapp.1"
libexec.install "resource.txt"
libexec.install "myapp.py" => "myapp"
bin.write_exec_script (libexec/"myapp")
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)