本日も乙

ただの自己満足な備忘録。

Goでheadコマンドを書いてみた

headコマンドを実装する課題が出されたので、本当は上げる気はなかったのですが、せっかく書いたのだから公開しとこうと思います。

ohsawa0515/gohead

READMEないですが、ヘルプはこんな感じでheadコマンドとほとんど同じです。

$ gohead -h
Usage of head:
  -c uint
        print the first K bytes of each file
  -n uint
        print the first K lines of each file (default 10)
  -q    never print headers giving file names
  -v    always print headers giving file names

工夫した点

  1. manコマンドを読んでオプションをできるだけ真似するようにした
  2. 挙動もできるだけ真似するようにした。例えば、 gohead -c 5 -n 10 xxxx.txt の場合は -n オプションを優先するとか
  3. テストをできるだけ書くようにした。カバー率を増やすように心がけた。flagパッケージを使っているのですが、テストの書き方はこちらの記事がとても参考になりました。

Go言語でテストしやすいコマンドラインツールをつくる | SOTA

Goでコマンドラインツール書くのがとても楽しいですね。