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 标题将脚本分成逻辑部分。