Grenade 编码指南¶
概述¶
Grenade 使用 POSIX shell 脚本编写。它指定了 BASH 并兼容 Bash 3。
Grenade 的官方仓库位于 https://opendev.org/openstack/grenade。
脚本¶
Grenade 脚本通常应该在 shebang 行中调用 env(1)
#!/usr/bin/env bash
脚本需要知道 Grenade 安装目录的位置。即使脚本本身位于子目录中,GRENADE_DIR 也应始终指向该位置。
# Keep track of the current grenade directory.
GRENADE_DIR=$(cd $(dirname "$0") && pwd)
许多脚本将利用 functions 文件中的共享函数。此文件会定期从 DevStack trunk 中直接复制。还有一个 rc 文件 (grenaderc) 会被 source 以设置用户环境的默认配置。
# Keep track of the current grenade directory.
GRENADE_DIR=$(cd $(dirname "$0") && pwd)
# Import common functions
source $GRENADE_DIR/functions
# Import configuration
source $GRENADE_DIR/grenaderc
文档¶
GitHub 仓库包含一个 gh-pages 分支,其中包含 Grenade 的 Web 文档。这是 Grenade 主要的文档,与 Grenade 脚本本身一起。
所有脚本都使用 shocco 进行处理,以便将注释渲染为描述脚本的文本。因此,我们倾向于在注释中对它们所指的代码稍微冗长一些。Shocco 还支持注释中的 Markdown 格式;请谨慎使用。具体来说,grenade.sh 使用 Markdown 标题将脚本分成逻辑部分。