#! /bin/rc #TODO add content type parser cr= fn header{ echo $1 $2$cr } fn filetype{ filetype=`{file -m $1} type=text/gemini #TODO: expand switch ($filetype){ case image*: type=$filetype } echo $type } webroot=./ while(! ~ $#* 0) { switch ($1) { case -w webroot=$2 shift case -m mflag='yes' case * echo Usage: g9srv/fsr [-w webroot] [-m] exit usage } shift } fullurl=`{read} if(~ $mflag yes) url=`{echo $fullurl | sed 's/gemini:\/\/// s/ //'} if not url=`{echo $fullurl | sed 's/gemini:\/\/[0-9 a-z .]*// s/ //'} if(~ $url '') url=/ if(test -f $webroot$url){ header 20 text/gemini cat $webroot$url exit 0 } if(test -f $webroot$url/index.gmi) header 20 text/utf8 cat $webroot$url/index.gmi exit 0 } header 51 'file not found'