我不太确定从哪里开始寻找这个问题的答案。
(我正在使用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
显然,对于像rvm
和npm
这样的工具,你只需要神奇地下载它们然后它们就可以了。 那么如何将我的shell脚本轻松打包并可以下载",并为用户保存6个shell行的(混乱)工作量?
(如果它有帮助,那么link to the repo)。
答案 0 :(得分:1)
作为一些简化要点,您不需要对目录进行双重嵌套,正如您所知git clone
将创建所需的目录。
所以
git clone https://github.com/joshbeam/angular_init.git .angular_init
将直接创建并将您的repo克隆到.angular_init
。
您还可以告诉git该文件在repo中具有执行权限,因此它会以这种方式检出,而不是让人们自己chmod
。只需更改权限并再次添加文件然后提交即可。 (您可以在工作目录中使用git ls-tree HEAD -- <file>
来查看git具有哪些权限。)
用git clone替换前五个步骤。这只留下了两个完全合理的步骤。
另外,第二步应该是将那种PATH
修改行放入适当的shell启动文件中,而不是直接在当前的shell会话中运行它。
或者,上述操作让人们将存储库检查到他们想要的任何位置,然后从那里直接链接到他们PATH
中已经存在的位置。