docs(core): 📝 完善项目文档并增强安全性
更新项目根目录 README.md 以更清晰地展示脚本集合架构,并为 Homebrew、Sub-Store 和 Telegram 模块新增详细的使用说明文档。 同时移除了 brew-upgrade-manager.sh 中的硬编码 sudo 密码,改为空字符串占位符以提升代码安全性。 - 增强根目录文档的可读性与结构 - 为每个子模块添加独立的 README.md - 修复脚本中的敏感信息泄露问题 (SUDO_PWD)
This commit is contained in:
111
homebrew/README.md
Normal file
111
homebrew/README.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Homebrew Upgrade Manager
|
||||
|
||||
`brew-upgrade-manager.sh` 是一个 macOS Homebrew 升级脚本,用来按固定流程更新仓库、检查环境、升级命令行工具和 GUI 应用,并清理旧缓存。
|
||||
|
||||
## 功能
|
||||
|
||||
- 执行 `brew update -v` 更新 Homebrew 仓库。
|
||||
- 执行 `brew doctor` 做健康检查,发现问题时给出警告但不中断后续流程。
|
||||
- 自动检查并安装 `buo/cask-upgrade`,用于提供 `brew cu`。
|
||||
- 使用 `brew upgrade --formula` 升级命令行 Formula。
|
||||
- 使用 `brew cu -yaq` 升级 Cask GUI 应用。
|
||||
- 使用 Python PTY 包装 `brew cu`,用于处理 sudo 密码输入和终端尺寸问题。
|
||||
- 执行 `brew cleanup --prune=all` 清理旧版本与缓存。
|
||||
|
||||
## 依赖
|
||||
|
||||
- macOS
|
||||
- Homebrew
|
||||
- Bash
|
||||
- Python 3
|
||||
- 可访问 Homebrew tap 的网络环境
|
||||
|
||||
可先检查:
|
||||
|
||||
```bash
|
||||
brew --version
|
||||
python3 --version
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
进入目录并赋予执行权限:
|
||||
|
||||
```bash
|
||||
cd homebrew
|
||||
chmod +x brew-upgrade-manager.sh
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```bash
|
||||
./brew-upgrade-manager.sh
|
||||
```
|
||||
|
||||
指定终端宽度:
|
||||
|
||||
```bash
|
||||
./brew-upgrade-manager.sh --width 130
|
||||
./brew-upgrade-manager.sh --width=130
|
||||
```
|
||||
|
||||
也可以通过环境变量指定:
|
||||
|
||||
```bash
|
||||
HB_TERMINAL_WIDTH=130 ./brew-upgrade-manager.sh
|
||||
```
|
||||
|
||||
优先级为:命令行 `--width` 高于 `HB_TERMINAL_WIDTH`,再高于自动检测值。
|
||||
|
||||
## sudo 密码
|
||||
|
||||
脚本中有一个 `SUDO_PWD` 占位变量:
|
||||
|
||||
```bash
|
||||
SUDO_PWD=""
|
||||
```
|
||||
|
||||
如果你的 `brew cu` 流程会触发 sudo,脚本会把这个变量传给内置 Python PTY 逻辑。请注意:
|
||||
|
||||
- 不要把真实密码提交到仓库。
|
||||
- 更建议在私有副本、本机自动化环境或临时运行前填写。
|
||||
- 如果不需要自动输入 sudo,保持空字符串即可。
|
||||
|
||||
## 执行流程
|
||||
|
||||
1. 打印分隔线并更新 Homebrew 仓库。
|
||||
2. 执行 `brew doctor`。
|
||||
3. 检查 `buo/cask-upgrade` tap。
|
||||
4. 升级 Formula。
|
||||
5. 升级 Cask。
|
||||
6. 清理 Homebrew 缓存。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### `brew cu` 不存在
|
||||
|
||||
脚本会自动执行:
|
||||
|
||||
```bash
|
||||
brew tap buo/cask-upgrade
|
||||
```
|
||||
|
||||
如果失败,通常是网络、Homebrew tap 或权限问题。
|
||||
|
||||
### 表格渲染或 Ruby 报终端宽度错误
|
||||
|
||||
使用固定宽度运行:
|
||||
|
||||
```bash
|
||||
./brew-upgrade-manager.sh --width 130
|
||||
```
|
||||
|
||||
### sudo 卡住
|
||||
|
||||
确认 `SUDO_PWD` 是否为空,以及当前命令是否确实需要 sudo。出于安全考虑,不建议把密码长期保存在仓库文件里。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 脚本启用了 `set -e` 和 `set -o pipefail`,关键命令失败会终止流程。
|
||||
- 升级 GUI 应用可能关闭或替换已安装应用,建议在重要工作保存后执行。
|
||||
- 如果你使用公司设备或受管 macOS,先确认 Homebrew、Cask 和 sudo 策略是否允许自动升级。
|
||||
Reference in New Issue
Block a user