Skip to content

Scripts

AceGuru-mjh edited this page Oct 1, 2026 · 4 revisions

仓库脚本

🛠️ 工程化 · 🏠 首页 › Scripts

Home Version Kotlin Modules Tools License

Scripts

📑 本页目录

scripts/ 下的 5 个脚本,是质量门禁与 rootfs 暂存的落脚点。全部可在仓库根目录直接执行。

1. 一览

脚本 用途 被谁调用
check_code_quality.sh 反模式门禁 + 空 catch 普查 quality-gate.yml
check_file_size.sh God 文件预算门禁 quality-gate.yml
kotlin_balance.py 词法感知的括号 / 花括号平衡检查 ci.yml(Check bracket balance)
fetch_rootfs.sh 内置 Ubuntu rootfs 构建期暂存 / 校验 ci.yml、apk.yml(Stage bundled Ubuntu rootfs)
compile_terminal_jvm.sh 无 Android SDK 时用 kotlinc 做类型检查 本地 / 参考 CI 静态分析

2. check_code_quality.sh

三项目标:

目标 判定
① javaClass.getMethod 反射分发 阻断(红)
② main 源中的 printStackTrace() 阻断(红)
③ 空 catch {} 普查 不阻断,仅输出报告供审计

扫描路径:core / app / platform / terminal-emulator 的 main。

scripts/check_code_quality.sh

3. check_file_size.sh

  • main ≤ 1200 行,test ≤ 1600 行;
  • 超限文件会被列出并让 job 失败 —— 请先拆分,不要改阈值。
scripts/check_file_size.sh

4. kotlin_balance.py

朴素计数会被注释、raw string("""…""")、字符串模板(${…})里的括号骗到。 这个脚本先做词法剥离再计数:

python scripts/kotlin_balance.py

典型用法:编辑大文件时误删一个花括号,编译前就能定位。

5. fetch_rootfs.sh

参数 行为
(默认) 拉取 3 个 ABI 的官方 Ubuntu base 归档 → 双重校验 → 暂存(幂等:已就绪跳过)
--check 只校验已暂存档案的指纹,不下载(CI 快速路径)
--clean 删除暂存档案
  • 退出码:0 成功;1 校验失败 / 缺依赖 —— 绝不带病暂存;
  • 依赖:curl + sha256sum;
  • 详细机制与三处指纹一致性见 Ubuntu rootfs 供给。

6. compile_terminal_jvm.sh

本机没有 Android SDK 时,用 kotlinc 对 terminal-emulator + platform:terminal (main 与 test 一起编译以获得 internal 可见性)做类型检查:

scripts/compile_terminal_jvm.sh

7. 本地预提交推荐组合

scripts/check_file_size.sh \
  && scripts/check_code_quality.sh \
  && python scripts/kotlin_balance.py \
  && scripts/fetch_rootfs.sh --check

四条全绿 ≈ CI 结构性门禁不会红。

Note

Windows 用户:.sh 脚本请用 Git Bash / WSL 执行,并保持 LF 换行与可执行权限, 否则会遇到 "\r": command not found。

8. 相关页面

footer

🏠 返回首页 · 📚 文档索引 · ❓ FAQ · 🔧 故障排查 · 🗺️ 路线图 · 🐛 提 Issue

Android Guru Agent · v1.4.4 · Kotlin 2.0.21 · Compose · PRoot · Room

Clone this wiki locally