这是用 Mkdocs 生成的静态站点文档,托管在 Purpur 的 网站 上。其中包含一个 Python 脚本,用于比较两个提交哈希的差异,并将配置 / 权限的添加 / 移除输出到一个 YAML 文件中。
$ pip install --user virtualenv
$ virtualenv env
$ source env/bin/activate
安装所需的包
pip install -r requirements.txt
要预览文档的更改,运行 mkdocs serve
。这将启动一个Web服务器,用于预览文档并在你进行更改时重新编译它。更多信息请参见:https://www.mkdocs.org/#getting-started
$ mkdocs serve
运行 compare-commits.sh
脚本,运行一个交互式脚本,比较Purpur提交之间的差异,并生成一个配置选项/权限添加/移除的文件。
./compare-commits.sh <prev_hash> <curr_hash>
你还可以将两个提交哈希作为命令行参数添加,这样将跳过脚本的交互部分。
$ ./compare-commits.sh 885092 22b876
# logs/885092..22b876.yml
config:
additions:
- gameplay-mechanics.item.immune.cactus: new ArrayList<>()
- gameplay-mechanics.player.fix-stuck-in-portal: 'false'
removals:
- projectile-load-save-per-chunk-limit: '-1'
permission:
additions: []
removals: []
./compare-commits.sh <prev_hash>
只包括一个哈希将与指定分支的最新提交进行比较(在撰写本文时为`ver/1.16.5`)。
$ ./compare-commits.sh 885092
# logs/885092..ver|1.16.5.yml
config:
additions:
- gameplay-mechanics.item.immune.cactus: new ArrayList<>()
- gameplay-mechanics.player.fix-stuck-in-portal: 'false'
removals:
- projectile-load-save-per-chunk-limit: '-1'
permission:
additions: []
removals: []
./compare-commits.sh --no-commits
使用选项 `--no-commits` 或 `-nc` 运行脚本将创建一个`last_commit`文件,其中包含运行时最近的提交。再次运行将使用`last_commit`中的哈希作为第一个提交哈希,在生成文件后用最新的提交替换它。
# 第一次运行
$ ./compare-commits.sh -nc
# logs/885092..ver|1.16.5.yml
config:
additions:
- gameplay-mechanics.item.immune.cactus: new ArrayList<>()
- gameplay-mechanics.player.fix-stuck-in-portal: 'false'
removals:
- projectile-load-save-per-chunk-limit: '-1'
permission:
additions: []
removals: []
# 创建一个last_commit文件
885092
# 在Purpur推送新提交后再次运行
$ ./compare-commits.sh -nc
# logs/885092..22b876.yml
config:
additions:
- gameplay-mechanics.item.immune.cactus: new ArrayList<>()
- gameplay-mechanics.player.fix-stuck-in-portal: 'false'
removals:
- projectile-load-save-per-chunk-limit: '-1'
permission:
additions: []
removals: []
# 修改last_commit文件
22b876