init commit
This commit is contained in:
commit
aacb3e890b
|
@ -0,0 +1,17 @@
|
||||||
|
g9srv
|
||||||
|
|
||||||
|
g9srv/rfs (read fs)
|
||||||
|
-w webroot the root of files to be served
|
||||||
|
|
||||||
|
-m multi webroot allows you to host on multiple domaians for exaple:
|
||||||
|
|
||||||
|
webroot/fulton.software/index.gmi
|
||||||
|
|
||||||
|
webroot/plan9.fulton.software/index.gmi
|
||||||
|
|
||||||
|
Coming soon:
|
||||||
|
Blog host
|
||||||
|
|
||||||
|
Werc
|
||||||
|
|
||||||
|
C lib
|
|
@ -0,0 +1,3 @@
|
||||||
|
#! /bin/rc
|
||||||
|
mkdir -p /rc/bin/g9srv
|
||||||
|
cp rfs /rc/bin/g9srv
|
|
@ -0,0 +1,52 @@
|
||||||
|
#! /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(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'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue