Files
docker-backup/llmdoc/reference/coding-conventions.md
Wang Defa 4d00283654 feat: 实现 Docker 备份系统,支持远程一键安装
实现功能:
- 文件夹和 MySQL 容器数据库备份
- tar.gz 压缩和自动清理旧备份
- systemd 定时任务集成
- 远程一键安装脚本(通过 Gitea 仓库)
- 完整的 llmdoc 文档系统

安装方式:
bash <(curl -sL https://gitea.bcde.io/wangdefa/docker-backup/raw/branch/main/install.sh)

配置文件位置:/etc/docker-backup/config.yml
命令:docker-backup, docker-backup-cleanup
2025-12-25 15:02:07 +08:00

90 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Bash 脚本编码约定
## 1. 脚本结构约定
### 1.1 基本骨架
- 必须以 `#!/bin/bash` 开头
- 使用 `set -e``set -o pipefail` 启用严格错误处理
- 按照以下顺序组织脚本:
1. Shebang
2. 文件描述注释
3. 变量和常量定义
4. 日志和颜色输出函数
5. 主要功能函数
6. 主函数(`main()`
7. 主函数调用
### 1.2 错误处理
- 使用 `set -e` 在任何命令执行失败时立即退出脚本
- 使用 `set -o pipefail` 确保管道命令链任何一个失败都返回失败状态
- 对于可能失败的操作,编写明确的错误检查和日志记录机制
## 2. 命名约定
### 2.1 变量命名
- 全局变量使用大写,单词间使用下划线分隔
- 正确: `SCRIPT_DIR`, `DEFAULT_INSTALL_DIR`
- 局部变量使用小写,单词间使用下划线分隔
- 正确: `backup_type`, `temp_backup_dir`
### 2.2 函数命名
- 使用小写,单词间使用下划线分隔
- 动词 + 名词的形式
- 正确: `install_dependencies()`, `check_root()`
- 错误: `Dependencies()`, `rootCheck()`
## 3. 日志记录约定
### 3.1 日志级别
- 使用以下日志级别函数:
- `log_info()`: 普通信息
- `log_warn()`: 警告信息
- `log_error()`: 错误信息
### 3.2 日志输出
- 日志应包含时间戳
- 使用颜色区分不同日志级别
- 日志消息应简洁明了,描述当前操作或状态
## 4. 注释风格
### 4.1 文件头注释
- 使用 `###############################################################################`
- 包含脚本名称和简要功能描述
### 4.2 函数注释
- 在函数定义前使用块注释
- 描述函数的目的和关键行为
### 4.3 行内注释
- 仅在代码复杂或不明显时使用
- 解释 "为什么" 而非 "做什么"
## 5. 参数和配置处理
### 5.1 参数解析
- 使用 `case` 语句处理命令行参数
- 提供帮助选项(`-h`, `--help`
- 对无效参数给出明确错误提示
### 5.2 配置加载
- 使用配置文件(如 YAML管理可配置参数
- 提供合理的默认值
- 在加载配置时进行有效性检查
## 6. 性能和安全最佳实践
### 6.1 依赖检查
- 在脚本开始检查所有必需的外部工具
- 为缺失的依赖提供明确的安装指导
### 6.2 权限管理
- 对于需要特权的脚本,明确检查 root 权限
- 谨慎处理文件和目录权限
## 7. 示例项目特定约定
本项目脚本特有的一些约定:
- 使用 `BASH_SOURCE[0]` 获取脚本所在目录
- 支持通过环境变量覆盖默认配置
- 使用 `trap` 注册清理函数