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 が多発していたので、シェル補完をできるようにしていた。

ghgithub.com/spf13/cobra を使っているので、固定値のオプションならシェル補完の追加は簡単にできる

しかし、gh ではオプション値のシェル補完はこれまで無く、PR を出すにしても実装の汎用性がどれくらい求められるかが不安だった。が、よく調べたら1ヶ月以内に別のオプションの値を補完する PR が出ていた。

特に凝った汎用化もなく、しかも PR 作成者はコミッタだったので、心置きなく自分も便乗(?)して Issue/PR を出すことができた。レビューでも特に指摘をされることはなく(むしろフォーマット統一までしてもらった)、無事にマージされた。

OSS に初 PR を出す時は、こういう「空気を読む」ような所作に結構コストがかかる。考えすぎなのかもしれないが。

Typescript Compiler API で定義元の AST ノードを取得する

備忘録。TypeScript の Compiler API を使ってソースコードのパースから特定の型・関数の定義元の AST ノードへジャンプする方法について。

TypeScript のバージョンは 4.1.3。

続きを読む

actions/upload-artifact@v2 は /tmp で使わないほうがいい

雑記。

Github Actions で成果物を永続するためのアクション actions/upload-artifact@v2 の落とし穴について。

TL; DR

  • 執筆時点で actions/upload-artifact@v2 は指定したファイルをアップロードすることはできない
  • Mac/tmp/private/tmp へのシンボリックリンクとなっていることに注意

以下の時点の情報

続きを読む