fix/issue25-interleaved-flags
main
修復 #25:parseFlags 改為先分離旗標與位置參數、再剖析旗標串、最後把位置參數設回 fs.Args,Go 標準 flag「遇位置參數即停止」不再影響「位置參數在前、旗標在後」的用法。
驗證:go vet ./... 與 go test ./... 全綠;對真實站點複測 issue 三個重現步驟皆 exit 0,寫入命令未帶 --yes 仍 exit 2。
關聯 issue #25。
parseFlags 改為先分離旗標與位置參數、再剖析旗標串、最後以第二次 Parse 把位置參數設回 fs.Args;Go 標準 flag 遇位置參數即停止的問題 不再影響「位置參數在前、旗標在後」的用法(teai api --method、 issues/pulls view --comments 等照 README 範例可用了)。 - login.go/workflow_commands.go 直接呼叫 fs.Parse 的六處改走 parseFlags,行為一致(login default/remove 的名稱也可與旗標交錯)。 - errHelp(命令 -h/--help)在 exitCodeFor 視為成功,與其既有註解 宣稱一致;命令層 -h 結束碼由 1/2 修正為 0。 - 新增 interleaved_flags_test.go 回歸測試:api/issues view/ pulls view/stalled/login default/login remove 的交錯組合。
驗證通過。核對如下:
No dependencies set.
The note is not visible to the blocked user.
修復 #25:parseFlags 改為先分離旗標與位置參數、再剖析旗標串、最後把位置參數設回 fs.Args,Go 標準 flag「遇位置參數即停止」不再影響「位置參數在前、旗標在後」的用法。
驗證:go vet ./... 與 go test ./... 全綠;對真實站點複測 issue 三個重現步驟皆 exit 0,寫入命令未帶 --yes 仍 exit 2。
關聯 issue #25。
驗證通過。核對如下: