ページ

2016年4月17日日曜日

Gem公開 - 初めてItamaeのplugin Android SDKを公開してみた -


ちょっと前に記事に上げたItamaeというツールのプラグインを作りました

そもそもItamaeのプラグインって?
Itamaeには他のレシピを取り込めるようになっており、
include_recipe 'hogehoge'のように書くと他のレシピを取り込む事が出来ます。
これによって様々なプラグインを取り込む事ができます。
また、プラグインはgemとして公開、インストールが可能です。

何を作った?
そのプラグインとして今回作成したのが
Android SDKをインストールするプラグインです。

Android SDK自体は公開されているものをダウンロードしパスを設定すれば
使用する事が出来ますが、plugin化した理由として
  • aaptが32bitアプリケーションなので64bitの環境だと動かない
  • sdkのアップデート(build-toolsやplatform等のインストール)を一気にやりたい
があった為です。

今回作成したプラグインでは上の二つを解決するべく、
64bit環境では32bitのaaptが使えるように別途ライブラリをインストールし、
アップデートしたいものをnode.jsonで指定できるようにしています。

使い方


まずインストールですが、gemとして公開しているので、
$ gem install itamae-plugin-recipe-android_sdk
とするか、Gemfileにgem 'itamae-plugin-recipe-android_sdk'を追加し
$ bundle install
とする事でインストールが可能です。
簡単なサンプルとして
require 'itamae'

include_recipe 'android_sdk::install'
として実行すると、デフォルトで/usr/localにAndroid SDKがインストールされ
ANDROID_HOMEが環境変数として設定されます。
Android SDKのバージョンとしては現時点で最新のr24.4.1がインストールされます。
また実行時にnode属性として以下が指定できます。
{
  "sdk": {
    "version" : "r24.4",
    "install_path" : "/var/lib",
    "update_list" : [
      "build-tools-23.0.3",
      "android-22"
    ]
  }
}
上の例では
  • SDKのバージョンがr24.4.0
  • インストール先が/var/lib
  • build-tools-23.0.3android-22(platform)のインストール
を指定しています。
※ SDKのバージョンや、build-toos等のバージョンはこちらを参照して下さい
node属性をnode.jsonとして保存した場合の、実際に実行するコマンドは
$ itamae ssh --host [ホスト名] -u [ユーザー名] --node-json node.json ファイル名.rb
になります。

まとめ


色々説明したんですが、
ちょっと気になった方や、AndroidSDKインストールする必要がある際などにこのプラグインを使って頂けたら幸いです。
また、Githubで公開しているので、何か問題点や不明点などがあればIssuesをあげて頂ければとても助かります。
ついでにStarもつけて頂けるとモチベーションにつながるので^^;、
つけてやってもいいという方は宜しくお願いします。

0 件のコメント:

コメントを投稿