gpt4 book ai didi

ruby - 如何打包 shell 脚本以通过 GitHub 分发?

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:42 24 4
gpt4 key购买 nike

我不太确定从哪里开始寻找这个问题的答案。

(我使用的是 Mac。)

无论如何,我制作了一个运行一些 Ruby 东西的命令行工具。基本上,我将一个可执行文件添加到我的用户目录中的一个文件夹中,添加了允许它在终端中运行的权限。然后,我将可执行文件的路径添加到我的 $PATH 变量中。这一切对我来说都很好。我可以从我的 shell 中像这样运行它:

$ ngi controller

我将项目上传到 GitHub,我已经给了用户下载它的说明,并按照我的方式使用它,但下载说明非常复杂(这是我能想到的最好的):

~ $ mkdir .angular_init
~ $ cd .angular_init
~/.angular_init $ git clone https://github.com/joshbeam/angular_init.git
~/.angular_init $ cd angular_init/bin
~/.angular_init/angular_init/bin $ chmod 755 ngi
~/.angular_init/angular_init/bin $ export PATH=$PATH:~/.angular_init/angular_init/bin

显然,对于像 rvmnpm 这样的工具,您只需神奇地下载它们,然后它们就可以正常工作了。 那么如何打包我的 shell 脚本以便于“下载”,并为用户省去 6 行 shell 的(令人困惑的)工作?

(如果有帮助,这里是 link to the repo)。

最佳答案

作为一些简化点,您不需要双重嵌套您的目录,正如您所知git clone将创建它需要的目录。

所以

git clone https://github.com/joshbeam/angular_init.git .angular_init

将创建您的存储库并将其直接克隆到 .angular_init 中.

您还可以告诉 git 该文件在存储库中具有执行权限,因此它会以这种方式 checkout ,而不需要人们 chmod它自己。只需更改权限并再次添加文件,然后提交即可。 (你可以在你的工作目录中使用 git ls-tree HEAD -- <file> 来查看 git 有哪些权限。)

这仅用 git 克隆替换了前五个步骤。只剩下两个完全合理的步骤。

另外,第二步可能是放置那种 PATH将修改行添加到适当的 shell 启动文件中,而不是直接在当​​前 shell session 中运行它。

或者,上面让你做的是让人们将存储库 checkout 到他们想要的任何地方,然后从那里链接到他们的 PATH 中已有的位置。直接。

关于ruby - 如何打包 shell 脚本以通过 GitHub 分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com