Elasticsearchのpluginコマンドにパスを通す小ネタ

Macに対してhomebrewを使ってインストールしたElasticsearchについて、プラグインを管理するためのpluginコマンドにパスを通します。

前提

elasticsearchのインストール。

$ brew install elasticsearch

pluginコマンドを実行可能にする

pluginコマンドのパスを調べます。

$ brew info elasticsearch

elasticsearch: stable 2.4.1, devel 5.0.0-beta1, HEAD
Distributed search & analytics engine
https://www.elastic.co/products/elasticsearch
/usr/local/Cellar/elasticsearch/2.4.1 (60 files, 29.1M) *
  Built from source on 2016-10-10 at 12:48:57
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/elasticsearch.rb
==> Requirements
Required: java >= 1.7 ✔
==> Caveats
Data:    /usr/local/var/elasticsearch/elasticsearch_KamataRyo/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_KamataRyo.log
Plugins: /usr/local/Cellar/elasticsearch/2.4.1/libexec/plugins/
Config:  /usr/local/etc/elasticsearch/
plugin script: /usr/local/Cellar/elasticsearch/2.4.1/libexec/bin/plugin

To have launchd start elasticsearch now and restart at login:
  brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
  elasticsearch

plugin scriptのパスを取り出し、加工します。

$ brew info elasticsearch | sed -n 's/^plugin script: //p'

/usr/local/Cellar/elasticsearch/2.4.1/libexec/bin/plugin

シンボリックリンクを貼ります。

$ ln -s /usr/local/Cellar/elasticsearch/2.4.1/libexec/bin/plugin /usr/local/bin/elasticsearch-plugin

elasticsearch-pluginコマンドが得られました。

まとめ

以下のワンライナーでも実現できます。

ls /usr/local/bin/elasticsearch-plugin || \
    ln -s `brew info elasticsearch | sed -n 's/^plugin script: //p'` \
          /usr/local/bin/elasticsearch-plugin