orion 972e7a142d feat(homebrew): 优化交互式终端中的 Homebrew 进度显示
- 在交互式终端中保留 Homebrew 6 的原生实时下载进度条和动态状态
- 使用 -t 检查判断终端类型,决定是否启用原生进度条
- 在 macOS 上使用 script(1) 创建伪终端以记录输出到日志
- 重定向到文件或 CI 时自动切换为稳定逐行输出模式
- 通过 HOMEBREW_COLOR 环境变量控制配色方案
- 在 Darwin 系统上检查 script 工具可用性以决定处理方式
2026-07-24 00:59:02 +08:00
2026-04-09 01:05:45 +00:00

Script Collection

一个面向日常自动化的小型脚本集合,当前包含 Homebrew 升级管理、macOS 快捷指令自动化、Sub-Store 节点重命名处理、Cloudflare Worker 脚本。

目录

script/
├── homebrew/
│   ├── README.md
│   ├── brew-upgrade-manager-bootstrap.sh
│   └── brew-upgrade-manager.sh
├── shortcuts/
│   ├── README.md
│   ├── vm-permission-fixer-bootstrap.sh
│   └── vm-permission-fixer.sh
├── substore/
│   ├── README.md
│   └── sntp-rename.js
├── cf_worker/
│   ├── lskypro/
│   │   ├── README.md
│   │   └── lsky-telegram-worker.js
│   └── tg-bot/
│       ├── README.md
│       └── tg-bot.js
├── LICENSE
└── README.md

脚本概览

目录 脚本 用途 运行环境
homebrew/ brew-upgrade-manager.sh 自动更新 Homebrew、升级 Formula/Cask、清理缓存 macOS、Bash、Homebrew
shortcuts/ vm-permission-fixer.sh 配合快捷指令自动修复 Parallels Desktop 虚拟机包所有权 macOS、快捷指令、Bash、Keychain
substore/ sntp-rename.js 守候网络节点命名专用,在 Sub-Store 代理节点名称中注入线路标签 Sub-Store 脚本处理器
cf_worker/lskypro/ lsky-telegram-worker.js Telegram 收图后上传到 Lsky Pro,并返回 Markdown 图片链接代码块 Cloudflare Workers、D1、Telegram Bot、Lsky Pro
cf_worker/tg-bot/ tg-bot.js 基于 Cloudflare Workers 的 Telegram 私聊转发与管理后台 Cloudflare Workers、D1、Telegram Bot

快速开始

Homebrew 升级

cd homebrew
chmod +x brew-upgrade-manager.sh
./brew-upgrade-manager.sh

如在非交互式终端运行,可指定输出宽度:

./brew-upgrade-manager.sh --width 130
HB_TERMINAL_WIDTH=130 ./brew-upgrade-manager.sh

详细配置见 homebrew/README.md

快捷指令自动化

shortcuts/ 目录包含适合 macOS 快捷指令 App 自动化调用的脚本。当前提供 shortcuts/vm-permission-fixer.sh,用于在打开 Parallels Desktop 时修复指定 .pvm 虚拟机包所有权。

快捷指令「运行 Shell 脚本」可使用远程启动器:

curl -fsSL https://git.orionc.me/orion/script/raw/branch/main/shortcuts/vm-permission-fixer-bootstrap.sh | bash

脚本不包含明文 sudo 密码;首次运行会弹窗输入一次并保存到 macOS Keychain,后续自动读取。

详细配置见 shortcuts/README.md

Sub-Store 节点标签注入

substore/sntp-rename.js 作为守候网络节点命名专用的 Sub-Store 节点处理脚本使用。默认会识别 GTMS1S2S3S4BGPAnytls 等关键词,并把标签插入到节点名末尾或 - SNTP 后缀之前。

详细规则见 substore/README.md

Cloudflare Worker 脚本

cf_worker/ 目录包含两个独立 Worker

  • cf_worker/lskypro/lsky-telegram-worker.js:接收 Telegram 图片,上传到 Lsky Pro,返回 Markdown 图片链接代码块。默认单文件上限 500.00 MB,上传队列最多 500 张。
  • cf_worker/tg-bot/tg-bot.js:Telegram 私聊转发与管理后台,绑定 Telegram Bot Token、管理员 ID、管理群 ID 和 D1 数据库。

详细部署说明分别见 cf_worker/lskypro/README.mdcf_worker/tg-bot/README.md

安全提示

  • 不要把 Bot Token、Cloudflare 密钥、Telegram 群组 ID、管理员 ID 或 sudo 密码提交到公开仓库。
  • homebrew/shortcuts/ 的启动器会通过 macOS Keychain 保存并读取 sudo 密码;如需清除,请使用对应 README 中的 security delete-generic-password 命令。
  • 远程启动器属于“下载后执行”模式,只应从可信仓库使用;需要更严格控制时可启用 SHA256 校验。
  • Cloudflare Worker 脚本会保存用户状态、消息映射、上传队列或配置项到 D1,请按实际隐私要求控制数据库访问权限。

许可证

本项目使用 GNU Affero General Public License v3.0,详见 LICENSE

S
Description
No description provided
Readme AGPL-3.0 1.4 MiB
Languages
JavaScript 67.2%
Shell 24.5%
Python 8.3%