「GOで全ウェブサイトCLI化計画」を読みました

技術書典5で見かけてビビッときたので買った本です。

booth.pm

読みながら試したリポジトリc18t/hello-cobra

TOC

  • はじめに
  • 第1章 cobraによるCLI開発の基礎
  • 第2章 Chrome DevTools Protocolとchromedp
  • 第3章 技術書典サークル検索CLI
  • おわりに
  • 著者紹介

はじめに

  • SPAの台頭によりスクレイピング界は未曾有の危機に陥っていた。
  • その救世主となったのがChrome DevTools Protocol。そうですね!

第1章 cobraによるCLI開発の基礎

  • cobragolangのためのCLI開発支援ツール/ライブラリ。
  • go get github.com/spf13/cobra/cobraでインストールできる。
  • cobra init github.com/c18t/hello-cobra~/.go/src/github.com/c18t/hello-cobra プロジェクトフォルダができた。
  • cd して go install でもう hello-cobra が動く。とっても簡単。
  • cobra add goobyehello-cobra goodbye サブコマンドを追加できる。これも簡単。
    • ここでひとつfishシェルだと問題があった。私の環境だと ~/.go/src~/Project にリンクしてるんだけど、$GOPATH以下に居ないとcobra addは動かせないらしく、fishがシンボリックリンクのパスを実パスに直す仕様のために動かなかった。仕方がないので bash で $GOPATH 以下に移動して実行した。
  • オプションハンドリングの方法も解説あり。あとでviper試そう。

第2章 Chrome DevTools Protocolとchromedp

使い方については割愛。

第3章 技術書典サークル検索CLI

実践編。サークル情報を取得する機能と、取得した情報をfzfで検索できるよう出力する機能、ブラウザで開くためのURLを取得する機能の3つを実装する。(その他の機能はfzf, openなどコマンドを組み合わせる)

おわりに

CLI化できればcronなどと組み合わせることで作業時間をゼロにすることも可能!自動化しよう!

感想

GoでCLIツールを作っている最中だったのでまさにこれが欲しかったんだよという感じの本。goについてはとにかくどのライブラリを使って良いのかさっぱりわからないので、cobraの選定理由もちゃんと書いてあってありがたかったです。あと表紙がかわいい。

素晴らしい本をありがとうございました。