2010-11-25
TitaniumのコードをGUIなしでエディタからすばやくbuildする
最近ちまたではTitaniumが話題ですね。はてなの技術勉強会で紹介されたのをきっかけに少しいじってみています。
Titanium開発では、通常Titanium DeveloperというGUIアプリケーションを使ってコードをbuildします。開発中は、どうしてもTitanium Developerとエディタとの行き来が必要で、なかなか不便です。
そこで、Titaniumのコードをvimなどのエディタから一発で、すばやくbuildできるようになるスクリプトを書いてみました。ついでにXCodeもTitanium Developerも(GUIの部分は)起動しなくてよくなります。
使い方
https://gist.github.com/715378 を Titaniumのプロジェクトの直下に置いて、
$ perl build.pl
のように実行します。すると9090番ポートでbuild用HTTPサーバが立ち上がります。
エディタからこのbuildサーバの/runにHTTPリクエストを送るとビルドが実行されます。vimの場合は以下のようしておくと良いです。
nnoremap <unique> <silent> <Leader>ti :call system('curl http://localhost:9090/run &')<CR>
これでvimで,tiとするだけでbuildがはじまります。 Titaniumのプロジェクト内のファイルがコンパイルされ、シミュレータが起動します。キーボードから手を離さずにすばやくbuildできて便利!
buildが実行されるとbuildサーバでは以下のようにTitaniumのログが表示されます。
> perl build.pl starting server at localhost:9090 at build.pl line 38. [INFO] One moment, building ... [TRACE] app property, ti.android.debug : false [INFO] Titanium SDK version: 1.4.2 [INFO] iPhone Device family: None [INFO] iPhone SDK version: 4.0 ...
どうしてこうなってるか
build.plのソースコードを見てもらえればわかるのですが、以下のようにすれば、GUIなしでビルドが実行できます。
$ "/Library/Application Support/Titanium/mobilesdk/osx/1.4.2/iphone/builder.py" run /path/to/TiProject
このコマンドは大変便利なのですが、vimとかのエディタから直接実行すると、工夫してもログが見れなかったり、エディタがこのスクリプトにブロックされてしまったりするので、あまりうまくありません。
なので、要求に応じてbuildをするだけのサーバを作って、そこにメッセージを送ることでエディタからのbuildを実現してます。AnyEventべんりー
- NaN days - [C#]HTTP 経由で Windows の JScript を実行できる JScr...
- mizchi log - unite-script使って unite-script-favstar(python) し...
- Twitter / @recenturl
- Perl Study Memory - [Perl]動画:Kansai.pm 第13回ミーティング i...
- (programmer? yaotti) - anything関数を好きな言語で実装できるanyt...
- hitode909のダイアリー - GIGA SCHEMAというウェブサービスを作り...
- Twitter / @g91blog
- Twitter / @webdesignStatio
- Twitter / @recenturl
- Life like a clown - はてなダイアラーの fladdict-rate
- くりす流 - 魔法少女まどか☆マギカ (1) (2)
- Twitter / @ringoame77
- 5.1さらうどん - 意識の高い学生(笑)がはてなインターンシップに...
- 日記 - 就活に失敗した俺がはてなのエンジニアインターンに参加して...
- あと味 - YAPC::Asia TOKYO2011で感じたこと・考えたこと
- Twitter / @hitode909
- 理系学生日記 - しょぼいカレンダーを iCal 化して iPhone でアニメ...
- hitode909+twitterの日記 - 2011年10月23日のツイート
- Twitter / @suzak
- 38976 http://atcurren.jp/angelinks/
- 1801 http://veadardiary.blog29.fc2.com/blog-entry-1151.html
- 1076 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/hakobe932/20080521/1211373969&ei=lSUqT8b_NoeEmQW7u-XyDw&usg=AFQjCNFGJCU_E7e2YihtC_6nnFLQ9Fo0ww
- 1034 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/hakobe932/20091014/1255522909&rct=j&q=android upload hook&ei=l7avTcHTNoiavgP2_7iXBw&usg=AFQjCNF3CL4jA6mS1UyWnTl7b2OJdnUcUA
- 993 http://weble.org/2010/06/17/macports
- 896 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCwQFjAB&url=http://d.hatena.ne.jp/hakobe932/20061208/1165646618&ei=RvsmT6D8EKiemQXg54yuDA&usg=AFQjCNH_LwoUH12NzBk16fSSaR73DZM-hQ&sig2=phn-zdWwwmGR4xpVVI8XMw
- 867 http://www.google.co.jp/url?sa=t&rct=j&q=macports インストール&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/hakobe932/20061208/1165646618&ei=Ni2ETqmSI-rsmAW69v0K&usg=AFQjCNH_LwoUH12NzBk16f
- 783 http://www.google.co.jp/url?sa=t&rct=j&q=macports&source=web&cd=6&ved=0CFcQFjAF&url=http://d.hatena.ne.jp/hakobe932/20061208/1165646618&ei=vjaETr-BCI6dmQXd-_36Dw&usg=AFQjCNH_LwoUH12NzBk16fSSaR73DZM-hQ
- 739 http://www.google.co.jp/search?client=safari&rls=en&q=macports+インストール&ie=UTF-8&oe=UTF-8&redir_esc=&ei=p33uTLqzKMXXca7vncoK
- 626 http://www.google.co.jp/search?q=macports+インストール&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&hl=ja&client=firefox-a



