通过Homebrew模块化和分发bash脚本

时间:2015-03-28 16:01:54

标签: bash homebrew .bash-profile

上下文

我在我的~/.bashrc中定义了一些功能,我希望将其变成一个Homebrew包。目前,这些函数在我的命令行中充当自定义命令:

# .bashrc
function foo() {
    # do something interesting
}

# at terminal
$ foo
# => does the interesting thing

方法

我使用brew create创建了一个自制公式。我目前的做法如下:

  1. 将功能定义移动到目录script
  2. 中的单独文件brew-script
  3. brew-script下载为tarball,brew-script.tar.gz
  4. 让我的brew公式在~/.bash_profile末尾添加文字以在终端会话开始时包含script
  5. 关注

    1. 修改brew公式中的.bash_profile是不是很糟糕? (例如,当使用brew uninstall script卸载时,brew应该以某种方式删除附加到.bash_profile的文本...解析.bash_profile看起来并不是很有趣。)

    2. 是否已经建立了在bash脚本中包含函数的约定,以便可以从命令行使用它们?

    3. 通常只是要求用户向.bash_profile.bashrc添加一些文字?

    4. 期望的结果

      应该可以使用brew干净地安装,然后运行foo作为命令:

      $ brew install script
      $ foo
      # => does the interesting thing
      

      (假设brew配方已在本地安装。我会担心审核并将配方推送到自制软件中)

2 个答案:

答案 0 :(得分:1)

参考https://github.com/Homebrew/homebrew/issues/50232https://github.com/Homebrew/homebrew/issues/50231

我有一个安全的脚本‡修改〜/ .bash_profile作为自制安装过程的一部分。 https://github.com/paul-hammant/homebrew-tap/blob/master/switchjdk.rb

据称是

答案 1 :(得分:0)

不使用自制程序:

将您的bash脚本放在某个文件中,例如bashrc或任何其他名称,然后输入以下行:

source "path/to/brew-script/script"

你的bash档案中的某个地方。

然后,您只需确保通过运行. ~/.bash_profilesource ~/.bash_profile.

来刷新或重新加载您的bash个人资料

自制程序如何安装:

当您安装自制软件时,它会在您的bash_profile中添加一行,修改您的$ PATH变量以包含自制安装仓库的路径,这样每当brew安装一些东西,它就可以通过您的PATH找到。 如果您使用brew创建,则必须将您的脚本上传到Internet上的某个位置,因为brew install的参数是一个URL。即如果我在my_bash_function.tar.gz创建我的脚本,那么我会做

brew create http://web.mit.edu/dianah13/www/my_bash_function.tar.gz

它还模拟拉取请求,将您的包裹包含在自制软件的主要仓库中。