Go の os.ProcessState からプロセスを終了させたシグナルを取得する
備忘録。Go の os.StartProcess() や os/exec.Cmd で実行した外部プロセスがシグナルによって終了した場合に、そのシグナルを取得する方法について。Go のバージョンは1.16。
注: GOOS=linux or GOOS=darwin で動作すること、および GOOS=windows で動作しないことを確認済み。他の環境は不明。
gh コマンドのシェル補完を強化する PR を出した
Github 公式 CLI である gh コマンドに出した PR がマージされた。
内容は gh issue list/gh pr list の --state オプションの値をシェル補完できるようにするというもの。
--state オプションに open, closed といったキーワードを与えると、表示する issue/PR を選択できる。しかし opened, close のような typo が多発していたので、シェル補完をできるようにしていた。
gh は github.com/spf13/cobra を使っているので、固定値のオプションならシェル補完の追加は簡単にできる。
しかし、gh ではオプション値のシェル補完はこれまで無く、PR を出すにしても実装の汎用性がどれくらい求められるかが不安だった。が、よく調べたら1ヶ月以内に別のオプションの値を補完する PR が出ていた。
特に凝った汎用化もなく、しかも PR 作成者はコミッタだったので、心置きなく自分も便乗(?)して Issue/PR を出すことができた。レビューでも特に指摘をされることはなく(むしろフォーマット統一までしてもらった)、無事にマージされた。
OSS に初 PR を出す時は、こういう「空気を読む」ような所作に結構コストがかかる。考えすぎなのかもしれないが。