2007/09/07

[技術系]   gobar: /bin/shによるテヌキgopherサーバ

at 14:33JST
 
いいんだよ : ひろ式めもちょう
http://memo.hirosiki.jp/article/54294582.html
portableじゃないよね。Bourne(not again)Shellで書くべきだ


できたー。

YappoLogs: Gopper - Gopher2.0時代のプラガブルGopher Serverをリリース
http://blog.yappo.jp/yappo/archives/000528.html

のperl版の対抗馬「gobar」。いまgopherを上げるなら、よりライトウェイトなコッチ。

#!/bin/sh 

ROOTDIR='/var/net/gobar/doc'
HOSTNAME='your.fqdn'
PORT='70'

read line
line=`\
/bin/echo -n "$line" \
| /bin/sed -e 's/[\x0a\x0d]//g;' \
-e 's/\.\.//g;' \
-e 's/[\|\&\;]//g;' \
-e 's/^\///;' \
-e 's/\/$//;' \
`

cd "$ROOTDIR"

isd=''
if [ -z "$line" ];
then
isd='/'
elif [ -d "$line" ];
then
cd "$line"
isd="/$line/"
elif [ -r "$line" ];
then
case "$line" in
*.txt)
/bin/cat "$line" | /bin/sed -e 's/^\./../;'
/bin/echo '.'
;;
*)
/bin/cat "$line"
;;
esac
exit
else
# ERROR
isd='/'
fi

bkIFS="$IFS"
IFS='
'
isd=`/bin/echo -n "$isd" | /bin/sed -e 's/^\.\///;'`
for i in `/bin/ls -1`
do
if [ ! -r "$i" ];
then
continue
fi
if [ -d "$i" ];
then
ftype='1'
else
case "$i" in
*.txt)
ftype='0'
;;
*)
ftype='9'
;;
esac
fi
/bin/echo "$ftype$i $isd$i $HOSTNAME $PORT"
done
/bin/echo '.'


元ファイル:gobar.sh

って、どこがportableなんだよ…。あと、ひとつ致命的な問題があるが、それは正直「どうでもええやんけ」と思っているのでいいや。

あとHTMLに「h」のマークを付けるのってRFC的にはどうなんだ…>iYappoの人。



関連しそうな過去記事:
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。