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

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

使い方

~/.fcfc.yml に以下のような設定を書く。

commands:
  - name: foocf
    api: api.example.com
    org: foo
    space: space1
    login-options: -u autopp@example.com # cf login に渡したいオプション(省略可)

そして .bashrc/.zshrc に以下を書く。

eval "$(fcfc)"

すると以下のエイリアスが定義されたのと同じように振る舞う。

# login コマンド用エイリアス
alias login-foocf="CF_HOME=~/.fcfc/foocf cf login -a api.example.com -o foo -s space1"

# login コマンド以外用のエイリアス
alias foocf="CF_HOME=~/.fcfc/foocf cf"

複数のターゲットを行き来する際に、cf login/cf target を一々実行せずに、コマンド名だけで使い分けることができる。

ghrGithub Release を作る

バイナリを添付する Github Release を作るのは初めてだったので、コマンドラインでよしなにできる方法が無いかと調べ、今回は ghr を使ってみた。

事前に artifacts/ に添付したいファイルを置いておくと、以下のコマンドでリリースできる。

$ ghr v0.1.0 artifacts

もちろんオプションでリリースの説明文なども指定できる。

今回は peco を参考にして、各種プラットフォーム向けにクロスコンパイルして、ghr でリリースする Makefile を作った。