2013-12-18

IRC 紀錄即時推送

irssi + inotify-tools + git 即時將紀錄推送到 github

Irssi

首先將 irssi 紀錄檔設定為每天切割:
/log open -autoopen -targets #tcffm ~/irclogs/Freenode/#tcffm-%Y-%m-%d

Git init

cd ~/irclogs/Freenode
git init
touch README
git add README
git commit -am "First commit."
git remote add origin git@github.com:OOO/tcffm.git
git push -u origin master

腳本

1. daily.sh
此腳本使用 crontab 每天 0:00 啟動,內容如下:
#!/bin/bash
killall -9 inotifywait
cd '/home/OOO/irclogs/Freenode'
today=$(date +%Y-%m-%d)
git add \#tcffm-$today
inotifywait -qme modify --format "sh onchange.sh %w" \#tcffm-$today | sh
2. onchange.sh
#!/bin/bash
git commit -am "log"
git push
將兩個腳本權限設定為 755

啟動

執行 ~/irclogs/Freenode/daily.sh


後記

inotifywait 可以監看每個檔案修改的動作,產生對應的動作。