9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

この記事誰得? 私しか得しないニッチな技術で記事投稿!

闘魂Elixir ーー 取り込みたいHex(パッケージ/ライブラリ)がponchoプロジェクトでGitリポジトリにある場合に特定のディレクトリのみを取り込みたい

Last updated at Posted at 2023-06-29

$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$

$\huge{闘魂とは己に打ち克つこと。}$
$\huge{そして闘いを通じて己の魂を磨いていく}$
$\huge{ことだと思います}$

はじめに

Elixirという素敵な関数型言語の話です。
Elixirのパッケージ(ライブラリ)はHexと呼ばれています。
パッケージ(ライブラリ)の取り込み方のオプションは、mix help depsで確認できます。

取り込みたいHexがponchoプロジェクトでGitリポジトリにある場合に特定のディレクトリ(つまりはHex)のみを取り込みたいということが私にはありました。
他の人もそういうことがあるかもしれないので紹介しておきます。
そんなことをしたくなるのは、ほぼほぼNerves界隈の人だろうと想像されます。
だってponchoプロジェクトなのですもの。

追記: 取り込みたい対象のHexがUmbrella Projectsに含まれている場合でも同じことをしたくなることがあるかもしれません。

取り込み例

こんな感じです。
TSL2561という光測定ができる部品のHexを取り込んでいます。

mix.exs
  def deps do
    ...
    {:tsl2561,
       git: "https://github.com/NervesJP/sensor_hub_poncho.git",
       subdir: "tsl2561",
       targets: @all_targets},
  end

ポイントは:subdirオプションです。これでディレクトリを特定します。
:subdirオプションはElixirのv1.13以上で使えます。
フルチェックアウトします。

v1.13未満でも使えるオプションは、:sparseオプションです。
こちらはgit-sparse-checkoutというGitのEXPERIMENTAL機能を使っているそうです。
git-sparse-checkoutとは、

スクリーンショット 2023-06-29 23.35.33.png

なのだそうです。


さいごに

取り込みたいHexがGitHubにあり、しかもponchoプロジェクトであるため、特定のディレクトリ(つまりはHex)のみを取り込む方法を紹介しました。
:subdirオプションか:sparseオプションを使います。

あー、最後に気づきましたがUmbrella Projectsでも同じことをしたくなることがあるかもしれません。


闘魂とは、 「己に打ち克つこと。そして闘いを通じて己の魂を磨いていくことである」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。
アントニオ猪木さんのメッセージから元氣をもらったものとして、それを次代に語り継ぎ、自分自身が「闘魂」を体現するものでありたいとおもいます。


$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$
$\huge{1、2、3 ぁっダァー!}$

9
0
0

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
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?