日常开发过程中,安装命令行工具过程有时候比较繁琐,使用脚本时需要将脚本仓库克隆下来,我们怎么能够简化这些过程呢,homebrew的安装过程提供了一种解决方案,就是直接通过bash执行一个远端的sh文件
1 | # homebrew安装命令 |
实现方式
/bin/bash -c
表示命令会从后面紧跟的字符串读取,如果字符串后面还有内容,则作为参数。(-c
: cmd)
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
表示请求install.sh的源内容
这样就可以读取远端的一个脚本,执行脚本了,在脚本中我们可以做很多自动化的工作,使用者可以在不用下载或者安装的情况执行这些动作
GitLab实现
企业内部一般都使用的是GitLab托管代码,并且有权限控制
GitLab官方推荐使用如下方式访问,文档地址
1 | curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master" |
your_access_token在GitLab仓库的setting选项当中可以生成,而且仅展示一次,请注意保存,这个用来做身份校验。
13083是你仓库的Project ID,这个一般在Project overview就可以看到。
app%2Fmodels%2Fkey%2Erb是app/models/key.rb的urlencode,是文件路径的urlencode。在命令中files后面的部分要使用文件在仓库的路径的urlencode形式,这样才能保证这部分是一个整体,不会在url解析时被误解
所以一个完整的执行远程GitLab文件脚本的命令如下:
1 | /bin/bash -c "$(curl --header "PRIVATE-TOKEN: <your_access_token>" "https://<your_gitlab_domain>/api/v4/projects/<your_project_id>/repository/files/<your_file_path_urlencode>?ref=master)" |