2015/11/09

[Mikutter][JRuby][作業記録]Mikutter を JRuby で動かしたい

環境

MSYS2 で構築した環境上で動作確認を行った。

  • OS: Windows8.1
  • Shell: bash on MINGW64
  • Java: Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
  • Ruby: jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa Java HotSpot(TM) 64-Bit Server VM 25.51-b03 on 1.8.0_51-b16 +jit [Windows 8.1-amd64]
  • Mikutter: 3.2.9

Consumer Key, Consumer Secret を変更する

GUI を変えたらそれはもう Twitter クライアントとしての Mikutter ではないので、 Consumer Key, Consumer Secret を変更する。

# TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET を自分で用意したものに修正する。
vim /PATH/TO/MIKUTTER/core/config.rb

Twitter への認証を済ませる

GUI のあるうちに Twitter への認証を済ませる。 CUI でのやり方わからんかった...。

GUI 的なプラグインを特定、削除

find/grep して gui とか gtk に依存しているものを削除。

$ find ./ -name Gemfile -print0 | xargs -0 grep nokogiri
./core/plugin/photo_support/Gemfile:gem 'nokogiri'

$ find ./ -name \*yml -print0 | xargs -0 grep gui
バイナリファイル ./core/plugin/achievement/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/activity/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/command/.mikutter.yml に一致しました
./core/plugin/console/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/direct_message/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/display_requirements/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/extract/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/followingcontrol/.mikutter.yml に一致しました
./core/plugin/gtk/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/gui/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/home_timeline/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/list_for_profile/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/list_settings/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/mentions/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/profile/.mikutter.yml に一致しました
./core/plugin/ratelimit/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/saved_search/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/search/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/settings/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/shortcutkey/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/smartthread/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/streaming/.mikutter.yml に一致しました

$ find ./ -name \*yml -print0 | xargs -0 grep gtk
./core/plugin/aspectframe/.mikutter.yml:  - gtk
バイナリファイル ./core/plugin/bugreport/.mikutter.yml に一致しました
./core/plugin/gtk/.mikutter.yml:slug: :gtk
バイナリファイル ./core/plugin/image_file_cache/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/openimg/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/profile/.mikutter.yml に一致しました
./core/plugin/proxy/.mikutter.yml:  - gtk

# find/grep に引っかからなかったけどこの辺もっぽいので削除
# skin
# sound
# set_view
# set_input
# notify
# change_account
# list
# aspectframe

必要な gem の準備

jruby の -S オプションで bundle install できる。

$ jruby -S bundle install --path vendor
Fetching gem metadata from https://rubygems.org/............
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake 10.4.2
Installing addressable 2.3.8
Installing safe_yaml 1.0.4
Installing crack 0.4.2
Installing delayer 0.0.2
Installing locale 2.1.2
Installing text 1.3.1
Installing gettext 3.0.9
Installing hashdiff 0.2.3
Installing json_pure 1.8.3
Installing power_assert 0.2.5
Installing test-unit 3.1.5
Installing memoize 1.3.1
Installing metaclass 0.0.4
Installing mocha 0.14.0
Installing moneta 0.8.0
Installing oauth 0.4.7
Installing ruby-hmac 0.4.0
Installing typed-array 0.1.2
Installing watch 0.1.0
Installing webmock 1.22.3
Using bundler 1.10.6
Bundle complete! 14 Gemfile dependencies, 22 gems now installed.
Bundled gems are installed into ./vendor.

実行

warning 出るけど一応メッセージ受信はできるようだ。

$ jruby -S bundle exec jruby ./mikutter.rb
uri:classloader:/jruby/kernel/kernel.rb:17: warning: unsupported exec option: close_others
C:/msys64/home/mikoto/project/mikutter/core/message.rb:417: warning: undefining `__id__' may cause serious problem
▒w▒肳▒ꂽ▒p▒X▒▒▒▒▒▒▒▒܂▒▒▒B
【mikoto2000】@mikoto2000 もろもろプラグインを最新化したら治った...。なんだったんだろうか。
【mikoto2000】@mikoto2000 vim のカレントディレクトリを java プロジェクトのルートに移動しておかないといけないみたいだ。カレントディレクトリを移動しない設定にしてるのがまずいみたい。うーん...。
...(snip)

Ctrl+C で終了しても、裏で java が動き続けるみたい。これはどうしたものか。

0 件のコメント: