Go

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…

Go 製ツールの開発フロー with Github Actions 覚書

Github 上での Go 製ツールの開発フローとそれを支える Github Actions が自分の中で一旦まとまったので書き残す。

ghq list を高速化する PR を出した

ghq を使い始めて以来、ディレクトリ移動にしろエディタオープンにしろ ghq list に頼りっぱなしだが、最近どうも遅く感じていた。そこでボトルネックを探してみて特定の状況下で ghq list の実行速度が向上する PR を出してみたところ、無事にマージされた…

Go 1.13 の error について

備忘録。 Go 1.13 で入った error の機能について。

Go の testing の Error/Fail/Fatal

備忘録。 Go の testing パッケージでいつも Error, Fail, Fatal の違いがわからなくなるので、まとめる。

Songmu/gitconfig で Go から git config を取得する

備忘録。 git config の Go クライアントと言える Songmu/gitconfig について。

Go の 構造体のタグを取得する

備忘録。 json などで構造体のフィールドに付ける json:omitempty などのタグを取得する方法について。 構造体フィールドのタグは標準パッケージ reflect を使って実行時に取得する。 以下、構造体 Tagged のフィールド Foo に付いているタグを取得するサン…

openapi-generator で生成した Go クライアントで Bearer 認証をする

備忘録。 openapi-generator で生成した Go クライアントで Bearer 使い方について。

t.Run で Go のテストをサブテストに分割する

備忘録。 Go のテスト関数内でサブテストに分割する方法について。 testing.T は Error や Skip などのように関数で実装しているテストの制御を行うメソッドがあるが、サブテストに分割するためのメソッド Run も実装されている。以下のように使える: func T…

Go のテストを testify/assert で書く

備忘録。 最近 Go のテストで使い始めたアサートライブラリについて。

cf コマンドのターゲット別エイリアスを生成するコマンド fcfc を作った + ghr を使ってみた

先日のブログで考えていた fcfc コマンドができたので Github Release でバイナリを公開した。Go 製なので、実行ファイルはバイナリを適当なパスに置くだけで動く。

Mison を Go で実装してみている

以前 Microsoft が出した Mison という JSON の高速なパーサに関する論文を読んだ。 Mison は普通のパーサと違って1文字ずつ読んで構造を解釈するのでなく、bitmap をフィールドの位置の特定を高速化し、さらにある程度パターンが読めてきたらフィールド位置…

Go の io.Reader 覚書

備忘録。 Go の io.Reader の使い方について。

Hugo の Markdown レンダリングについて調べた

日記兼備忘録。 Go 製の静的サイトジェネレータ Hugo の [link\\](url) という形式のリンクがうまくレンダリングされないバグを追いかける過程で、Hugo が使っている Markdown レンダリングのライブラリについて調べたのでまとめる。

golint のパスが変わったのでインストールし直したりした

少し前にどこかで「golint の upsteam が github.com から golang.org に移った」という話をみかけて「go get のパスも変えないといけないのかな」とか思いつつもやらなかったが、先週ついに github.com の import path が使えなくなった模様。 $ go get git…