init commit

This commit is contained in:
glenda 2021-01-14 19:18:16 +00:00
commit aacb3e890b
4 changed files with 74 additions and 0 deletions

17
README Normal file
View File

@ -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

3
install Executable file
View File

@ -0,0 +1,3 @@
#! /bin/rc
mkdir -p /rc/bin/g9srv
cp rfs /rc/bin/g9srv

52
rfs Executable file
View File

@ -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'

2
tcp1965 Executable file
View File

@ -0,0 +1,2 @@
#!/bin/rc
exec tlssrv -c mycert /rc/bin/g9srv/rfs -w mywebroot