Start My SimpleHTTPServer
近頃、ライブラリのドキュメントや言語のリファレンスがgithub.ioで公開され、htmlファイル等もgithub上でメンテされています。そのため、じっくり読みたいものに関してはローカルにクローンしLAN上で読んでいます。当初は常に立ち上げているApacheのDocumentRootにエイリアスをつなげていたのですが、confの編集がめんどくさいので、結局ローカルリポジトリでpython -m SimpleHTTPServer
としてしまいました。今度はディレクトリを忘れる、移動がめんどくさい等の問題があり、gem server
のようなコマンドとすれば、補完もきくし良いだろうと思い以下を書きました。
#!/bin/bash
DOCROOT=
DEFAULT_PORT=8000
SERVER="python -m SimpleHTTPServer"
PORT=
if [[ $1 =~ ^[0-9]+$ ]]
then
PORT=$1
elif [[ -z $1 ]]
then
PORT=$DEFAULT_PORT
else
echo "Usage: $0 [port]"
exit 0
fi
TEST="$(nc -z localhost $PORT 2>&1 | grep succeeded)"
if [[ -n $TEST ]]
then
echo "Can't use address: localhost:$PORT"
exit 1
fi
(
for i in 1 2 3 4 5; do
sleep 0.5
TEST="$(nc -z localhost $PORT 2>&1 | grep succeeded)"
if [[ -n $TEST ]]; then
break
fi
done
if [[ -n $TEST ]]; then
open "http://localhost:$PORT/"
fi
) &
cd $DOCROOT
$SERVER $PORT
サブシェルからページをブラウザで開くようにもしました。DOCROOT
を設定し適当なコマンド名をつければ、どこからでも利用できます。(gist)