LoginSignup
10
4

More than 5 years have passed since last update.

[Elixir] Hexのパッケージをmix.exsにすぐに追加できるようなカスタムタスクを作ってみた

Last updated at Posted at 2017-06-18

Elixirで依存するパッケージは mix.exs に記述していきますが、
以下のようにバージョンを書く必要があり、少し面倒です。

mix.exs
  defp deps do
    [
      {:hogehoge, "~> 1.0.0"}
    ]
  end

バージョンのところを 0.0.0 にしておけば
気にしなくてもいいらしいのですが、
それもそれで少し気持ち悪いです。

(追記)↑こちらは手元で試してもうまく動きませんでした。。誤情報失礼いたしましたmm

少しでも楽にならないかなーと思い、
mix hex.deps というmixのカスタムコマンドを作成してみました

mix_task_hex_deps

使い方

mix hex.deps にパッケージ名の引数を渡してあげると
{:hogehoge, "~> 1.0.0"} といった形式でパッケージ名と最新バージョンが
表示されます

$ mix hex.deps httpoison
{:httpoison, "~> 0.11.2"}
$ mix hex.deps httpoison poison credo | pbcopy
# クリップボードに以下の文字列が格納される
{:credo, "~> 0.8.1"},
{:poison, "~> 3.1.0"},
{:httpoison, "~> 0.11.2"}

mix_hex_deps.gif

インストール方法

$ git clone https://github.com/tamanugi/mix_task_hex_deps.git
$ cd mix_tasks_hex_deps
$ mix do archive.build, archive.install

感想とか

npm install {パッケージ名} みたいに
mix.exsに追記できるといいかなと思ったりもしたのですが、
exsファイルを弄るものどうかなと思って
とりあえずは標準出力に出力させるだけにしてみました

カスタムタスク作るのは大変かなと思ったのですが、
思ったよりはお手軽につくれました。
Elixirは公式のコードも読みやすいので、
いろいろ参考になりますね

あとはもうちょっといい名前つけたらよかったな

参考

[Elixir]Mixのカスタムタスクを作成する

@ma2ge さん, @niku さんのリポジトリも参考にさせていただきました
https://github.com/ma2gedev/mix-star
https://github.com/niku/mix_tasks_niku_new

10
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4