使用 GitHub API 自动化包编译过程

Automating package compile process using GitHub API

所以,我想创建一个 shell 脚本来自动执行下载包、解压缩、CD 进入、配置和从源代码编译的过程。

我从下面的一个简单脚本开始:

#!/bin/bash PROJ=ruby curl https://api.github.com/repos/$PROJ/$PROJ/tags -o $PROJ.json cat $PROJ.json | grep -Po '(?<="name": ")[^"]*'

这会获取 Ruby 项目的 JSON 文件,以及 returns 最新的(?)标签名称(例如 ruby_2_3_1)。

但是,我很笨,我想在这个脚本上做更多的扩展。我愿意:

剩下的我可以自己完成,因为我对 ./configure、make、make install 等相当熟悉

希望这不会困难。我宁愿 而不是 使用 jq(只是标准的正则表达式),但如果使用 jq 更容易,我也可以。

https://api.github.com/repos/ruby/ruby/tags 我没有在任何标签名称中看到 ruby 这个词。

标签按名称倒序排列(与 sort -nr 相同)

您可以通过以下方式下载并提取最新的标签 ruby tarball:

LAST_URL=`cat ruby.json | grep -Po '(?<="tarball_url": ")[^"]* | egrep -v [a-z]$ | head -1'
wget $LAST_URL && tar -xvzf `basename $LAST_URL`

一些注意事项:

  • egrep -v [a-z]$ 过滤掉非 ruby 包,不以数字结尾(es. yarv_migration_base
  • head -1 取第一个标签(格式 vX_X_X)倒序,最近的