mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 09:28:14 +00:00
cmd/initconfig 通过 database/sql 使用 mattn/go-sqlite3,而 build.sh 一直用 CGO_ENABLED=0 构建它:该库在非 cgo 下退化成 static_mock.go 里的桩,sql.Open 是惰性的所以不报错、第一次 Exec 才失败,而 main.go 丢掉了所有返回值。合起来 是一个完全静默的空操作——打印凭据、退出码 0、config.db 里一个字节都没写。 安装脚本把这份凭据写进 credentials.txt,用户照着登录必然失败,全程无报错。 - build.sh: initconfig 改 CGO_ENABLED=1,并写明为何不能图省事去掉 cgo - main.go: 每个 Exec 都检查;写完**回读比对**(不看返回码,看真实落盘内容), 不一致即非零退出 反向验证:仍用 CGO_ENABLED=0 构建时,现在 stderr 报 "Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work" 且 exit 1(此前是 exit 0 并把凭据照打印出来)。