github のフィードを Growl で表示する GitHubGrowler が便利

By | 2009年5月29日

id:typester さんの発言 を見て github-growler なるものがあることを知る。宮川さん作。
で、さっそく設定をしてみた。
ソースは github からダウンロード。(ここ)

git clone http://github.com/miyagawa/github-growler.git
cd github-growler
perl github-growler.pl [userID] [APIキー]
(※APIキーは [home] => [account] に書いてあります)

これで動くようになればok.
これ自身がデーモンなので、そのまま放置しとくと新しい動きだけを表示してくれる。

毎回 UserID と APIキー の入力がめんどい場合は git config で登録しておけばよい。

git config --global github.user [userID]
git config --global github.token [APIキー]

default で取得間隔と表示最大数は変更できる

defaults write net.bulknews.GitHubGrowler interval [取得間隔(秒)]
defaults write net.bulknews.GitHubGrowler maxGrowls [表示最大数]

設定ができてるかはこれで確認

defaults read net.bulknews.GitHubGrowler interval

自動起動の設定

実行するとデーモンがたちがあるけど、ログイン毎にするものめんどくさい。
というわけで launchd を使って自動起動の設定をしてみた。

gist から DL するかもしくは下記のをコピペしてください。
置き場所はここ。
~/Library/LaunchAgents/net.bulknews.GitHubGrowler.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>net.bulknews.GitHubGrowler</string>
    <key>ProgramArguments</key>
    <array>
        <string>絶対パス /github-growler/github-growler.pl</string>
        <string>ここに UserID </string>
        <string>こっちに API キー</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

github-growler.pl までの絶対パスと UserID と APIキーを変更してください。

launchd に登録(登録すると自動起動するようにしてある)

launchctl load ~/Library/LaunchAgents/net.bulknews.GitHubGrowler.plist

エラーは /var/log/system.log にでます。
これで動かない場合は userID, APIキー が合ってるか確認してください。
net.bulknews.GitHubGrowler.plist を変更した際は一度 unload して再度、load してください。
そうしないと反映されないみたいで地味にはまった。。。

あとuserID や APIキー が script に渡っていない場合はこんな感じのエラーができます。

May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Can't exec "git": No such file or directory
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Use of uninitialized value $user in scalar chomp
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Can't exec "git": No such file or directory
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Use of uninitialized value $token in scalar chomp

ちょっと動かしてみたけど、ほんとに世界がかわったw
前まで RSS リーダーとかで見てたけどこっちの方が全然いいなぁ〜

参考資料

LaunchDaemons (launchctl, launchd.plist) の使い方

ports で入れた perl で Mac::Growl が使えるようになるまで

By | 2009年5月25日

Test::Continuous に興味がわいたので
さわってみようとしたらMac::Growl が必要とのこと。
いれようとしたら Foundation.pm 等がないためちゃんと test に通らなかった。

どうやら ports でいれたのには Foundation の ラッパーモジュール がないらしい。
variants で調べて +darwin を足していれなおしたけどなかった。
というわけでいいのかわからないけど、デフォルトに入ってるのにシンボリックリンクを貼って
その場をしのいだ。

以下、説明。
mac 独自に bundle されたモジュール類(Foundation.pmとか)は
/System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level 以下にあります。
Foundation.pm が PerlObjCBridge.pm と CoreFoundation.pm にも依存していたので忘れなく貼ること。

自分の環境だと以下のパスに貼った。

sudo ln -s /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/Foundation.pm /opt/local/lib/perl5/5.10.0/darwin-2level/Foundation.pm
sudo ln -s /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/CoreFoundation.pm /opt/local/lib/perl5/5.10.0/darwin-2level/CoreFoundation.pm
sudo ln -s /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level/PerlObjCBridge.pm  /opt/local/lib/perl5/5.10.0/darwin-2level/PerlObjCBridge.pm

perl のバージョンが 5.10 だけど 5.8.8 からのシンボリックリンクでも現状、一応動いてる。

ただ、Mac::Growl が utf8 で文字を渡しても文字化けする始末。
というわけで Net::Growl や GNTP::Growl も試してみたが
残園なことにNet::Growl は何もおこらない。
GNTP::Grwol は IO::Socket::INET でコネクションできない感じ。

IO::Socket::INET: connect: Connection refused at /opt/local/lib/perl5/site_perl/5.10.0/GNTP/Growl.pm line 44,  line 1.

うむぅ〜困った。

追記 2009/08/29 20:17:22

snow leopard にしたら Mac::Growl が使えなくなった。
どうやら Carbon 系が 32bit でしか使えないみたい。
64bit で起動させると使えない。
ソース

Tweetie を Growl に対応させる SIMBL プラグイン

By | 2009年4月27日

最近 Twitter client に Tweetie を使ってます。
広告がたまに表示されるけど、気にならない程度。個人的には一番自分に合う。
iphone の twitter クライアントもつかいやすいのでとても気に入っています。

いけてなかったのが growl に対応していいなかったこと。
それを差し引いても使いやすいからいいんだけど。

そのうち対応するだろうなーとと思ってたら
Tweetie を Growl に対応させる SIMBLE プラグインを発見!!!
Tweetie for MacにGrowlを追加(仮)
これ本当にほしかったから相当うれしい。
同じように Tweetie 使って Growl に表示されない!!って思ってた人は試してみては。
(一時的な急場しのぎのプラグイン(仮)とのことです)
SIMBL プラグインもちょっと試してみたい今日この頃。