我写了第一次点击,所以我仍然不确定它是如何工作的。我写了这个小公式:
class Konversation < Formula
desc "Konversation is a tool to generate rich and diversified responses to the user of a voice application."
homepage "https://github.com/rewe-digital-incubator/Konversation/"
url "https://github.com/rewe-digital-incubator/Konversation/releases/download/1.0.0/konversation-cli.jar"
sha256 "6123d126278faae2419f5de00411a1b67ae57e0cf2265a5d484ed6f9786baaca"
def install
prefix.install "#{buildpath}/konversation-cli.jar"
File.write("#{buildpath}/konversation", "java -jar #{prefix}/konversation-cli.jar $@")
bin.install "#{buildpath}/konversation"
system "chmod", "+x", "#{bin}/konversation"
end
end
但是,由于“ konversation”可执行文件没有x权限,因此我无法运行我的工具。我尝试使用系统chmod修复此问题,但是我发现安装后通过brew清除了我的x标志:
==> Cleaning
Fixing /home/linuxbrew/.linuxbrew/opt/konversation/bin/konversation permissions from 777 to 444
如何正确设置文件权限?
请注意,我不想将shell脚本本身托管在某个地方,因为我看不到将shell脚本和jar文件打包到另一个zip文件中以进行销毁的工作。
如果您想自己尝试,请尝试以下命令:
brew install rekire/packages/konversation
答案 0 :(得分:1)
Shell脚本需要有一个shebang行,否则postinstall cleaner将设置其权限,就好像它不是可执行文件一样。在这种情况下,我建议:
bin.write_jar_script
-这将为JAR脚本设置正确的环境.jar
而不是libexec
安装prefix
到var editor = ace.edit('myeditor');
editor.setTheme("ace/theme/terminal");
editor.getSession().setMode("ace/mode/sql");
editor.getSession().setUseWrapMode(true);
,以避免不必要的文件污染前缀。