2008年10月27日

シェルスクリプトで情報収集用スクリプト

iPhoneのアップデータ出たけど、やっぱり小変更でしたね。
日本語入力の改善や全体の軽量化といった変更は9月のアップデータが出た後に公開されそうな気がする。
9月は3G接続環境の改善をちゃんとやることに注力するんじゃないかな。

Firefoxで開いたページを携帯電話やPDAで閲覧するというサイトでは、Firefoxで開いているタブについて、ページのタイトルとリンクを作成し、さらにそれをFTPでサーバにアップロードする方法を紹介している。

Mac OSXの自動化ツールであるAutomatorを使っていて、なかなかスマートな方法だ。
僕もMacを使っているのだが、どうせやるならページのファイル名やタイトルも修正したいと思う。
おそらく、キーボードから入力した文字でテキストファイルを置換する機能さえあれば可能なのだが、そういう機能が見あたらない。
AppleScriptか、Automatorに対応したエディタがあればやれそうだが、なんだかめんどうなので、Automatorはやめた。

結局、同様の機能を実現するシェルスクリプトを作成して、引数でファイル名とタイトルを与えるという方法にした。
タイトルは、sedで、ファイル中の「maintitle」というキーワードと入れ替えてくれる。
これで、こんなページを作成することができる。ちょっと調べ物してまとめておきたいときにすごく便利だ。

#!/bin/sh
topdir=~/bin/
savefile=${1%.html}.html
clipfile=~/webclips/${1%.html}.html
if [ -z $2 ];
then
newtitle=${1%.html}
else
newtitle=$2
fi

ftphost="サーバ"
ftpuser="ユーザ名"
ftppass="パスワード"
ftpdir="アップロード先"

pbpaste | nkf -w8d > ${topdir}/lib/body
cat ${topdir}/lib/head ${topdir}/lib/body ${topdir}/lib/tail |sed s/maintitle/${newtitle}/g > ${clipfile}

# ## ftp
# sftp ${ftpuser}@${ftphost} << EOF
# cd ${ftpdir}
# put ${clipfile}
# bye
# EOF

rm -f ${topdir}/lib/body

なんだか原始的だけど、コマンドラインの方が好きと言えば好きなのでこれでいいや。
sftpを使っているので、鍵をサーバに置いておくか、実行時にパスワードを入力するかすることでサーバに公開まで可能。
まあ、どうせシェルから実行するから毎回パスワード入力すればいいんじゃないかな。

中間ファイルは消しておく方がいいかもしれないけど、毎回同じファイルなので、まあよしということに。

ちなみに、headとtailにhtmlファイルの頭としっぽを入れておくことで、カスタマイズも簡単だ。

追記:スクリプトを少し書き換えて、第二引数(タイトル)がないばあいに対応したほか、パイプをより有効に使って行数を減らしてみた。

追記2: 自動でindexを作るスクリプトも追加してみました。
こういう感じになります。

CSSを設定した方がいいですね。

0 件のコメント: