Pixela の CLI ツール pa を作りました。
pa とは?
pa はシェルの補完機能を使ってコマンドとかフラグをサクサクと軽快に入力できて PIxela サービスをとても簡単に利用できます。あと、タイプが苦手でタイプミスが多いという人は結構いると思いますが (自分はタイプがかなり苦手です)、シェルの補完が効くのでタイプ量が必要最小限に抑えることができてタイプミスのイライラから解放されます!
シェルの補完は pa completion zsh
みたいなコマンドでシェルの補完スクリプトを生成したのをシェルに読み込ませて利用することができます。
シェルの補完スクリプトの生成は Zsh, Bash, Fish と PowerShell の補完スクリプトの生成に対応しています。
シェルの補完のデモを GIF にしてみました。なんとなくですが雰囲気が伝わると思います。
Pixela とは?
任意の数値を登録してアレのあれっぽくグラフを作れるクールな API サービスです。
詳しくは↓
使い方
PIxela の API
こんな感じで使います。
フラグが結構多いですがシェルの補完が効くのでサクサク入力できます。
$ pa graph create \ --id=your-graph-id \ --name=your-graph-name \ --type=int \ --unit=count \ --color=ichou $ pa graph get | jq { "graphs": [ { "id": "your-graph-id", "name": "your-graph-name", "unit": "count", "type": "int", "color": "ichou", "timezone": "", "purgeCacheURLs": null, "selfSufficient": "none", "isSecret": false, "publishOptionalData": false } ] }
現時点の Pixela の最新バージョンの v1.18.0 のすべての API をサポートしています。
Pixela のユーザー名とトークン
Pixela のユーザー名は --username
フラグで指定して Pixela のトークンは --token
フラグで指定します。
$ pa graph get --username=yourname --token=thisissecret
Pixela のユーザー名とトークンは環境変数で指定することもできます。
Pixela のユーザー名は PA_USERNAME
環境変数で指定して Pixela のトークンは PA_TOKEN
フラグで指定します。
$ export PA_USERNAME=yourname $ export PA_TOKEN=thisissecret $ pa graph get
Pixela のユーザー名とトークンは設定ファイルで指定することもできます。
v1.1.0
以降が設定ファイルに対応しています。
$ cat ~/.pa username = "yourname" token = "thisissecret" $ pa graph get
pa は次の優先順位でユーザー名とトークンを使用します。 それぞれの項目はその下の項目よりも優先されます。
シェルの補完スクリプトの生成
Zsh, Bash, Fish, PowerShell の補完スクリプトを生成して利用できます。
$ pa completion <SHELL> > /path/to/completion
Zsh を使っているならこんな感じのコマンドでシェルの補完が効くようになります。
$ pa completion zsh > ~/.zsh/completions/_pa $ . ~/.zsh/completions/_pa
インストール方法
Homebrew
$ brew tap ebc-2in2crc/tap $ brew install pa
Developer
$ go get -u github.com/ebc-2in2crc/pa/...
手動でのインストール
https://github.com/ebc-2in2crc/pa/releases からダウンロードした zip ファイルを展開した中にあるファイルをパスの通ったディレクトリに入れる。
動機
Pixela はシンプルでいろんなことに応用できるとても便利な API サービスです。
普段は pixela4go という Pixela の Go クライアントを使って Pixela のサービスを利用しているのですが「ちょっとしたことを試したり確認するときは CLI があると楽だよなー」と以前から結構感じていました。
実は Pixela は pi という公式 CLI ツールがあります。pi は Pixela を薄くラップした CLI ツールでコマンド体系が分かりやすくて自分もとても便利に使っているのですが、自分はかなりタイプが苦手なこと & pi はシェルの補完が効かないことが少し使いにくさを感じていました。 そんなときにふと、シェルの補完が効かないならシェルの補完が効くようにすればいいじゃん => Pixela との通信部分は pixela4go を使えば CLI 部分を実装するだけでよさそう => 作ってみよう! みたいな勢いで作りました。
pa という名前
コマンドの名前が長いとタイプするのが面倒くさいので短い名前にしようと最初から決めていて、Pixela の先頭1文字と末尾1文字をそれぞれもらって pa
という名前にしました。
まとめ
バグとかあると思いますし「こーしたら使いやすくなる」とかあったら issue とか PR 作ったり声かけてもらえると嬉しいです。