hitode909の日記

趣味はマリンスポーツですの日記です

GitのpushしていないコミットがあるときGrowlで通知する

Gitのリポジトリで,よくpushするのを忘れるので,pushされていないコミットがあることをGrowlで通知してみる.


git_reminderという名前でこんなのを作っておいて,

#!/usr/bin/env ruby
require "ruby-growl"

if `git log --pretty=oneline  origin..HEAD 2> /dev/null`.length > 0
  growl = Growl.new "127.0.0.1", "git-reminder", ["message"]
  growl.notify "message", "Git Reminder", "#{File.basename(Dir.pwd)} has local commit."
end


.zshrcにこう書いておくと,

precmd() 
{
  git_reminder
}

そのリポジトリ内で何かコマンドを実行するたびにpushしてないコミットがあることを教えてくれる.
http://gyazo.com/399644c51b139e81e5ffeb45a3c1bcb9.png
頻繁にコマンドを実行すると重いようで,シェルのパフォーマンスが低下した気がした.

雑談

Growl,みんな使ってるけど,けっこう邪魔だと思う.押したいボタンの上にGrowlが出ていると,通知が消えるまで待っていないといけないし,ゆっくり消えるし,いらいらする.
邪魔にならないように表示させたいのだけど,何かいい方法はないのだろうか…….