ref: 89c9f20250438c4768fc3186d9d83b45d2997c03
parent: 0de05aed17a583e6b74ce4d02876f9bfa88c9c2a
author: Moody <j4kem00dy@gmail.com>
date: Wed Aug 19 19:39:24 EDT 2020
Parse query options properly Add require input script for prompting client Add example of require-input use in select-handler
--- /dev/null
+++ b/handlers/require-input
@@ -1,0 +1,5 @@
+#!/bin/rc
+if(~ $query ''){
+ echo 10^' '^$1^$cr
+ exit
+}
--- a/rc-gemd
+++ b/rc-gemd
@@ -14,6 +14,9 @@
server_name=`{echo $url | sed 's,/.*,,'}
location=`{echo $url | sed 's,[a-zA-Z0-9.:]+/?,/,'}
+query=`{echo $location | sed 's,[^?]*\??,,'}
+location=`{echo $location | sed 's,\?.*,,'}
+
echo request from `{sed 's/!.*//' $net/remote} to $url >[1=2]
. $rc_gemd_dir/select-handler
--- a/select-handler
+++ b/select-handler
@@ -1,5 +1,16 @@
#!/bin/rc
+fs_root=/lib/gem
if(~ $location /)
location=/index.gem
-fs_root=/lib/gem
+
+if(~ $location /search){
+ . $rc_gemd_dir/handlers/require-input 'Input a search query'
+ echo 20^' '^'text/gemini'^$cr
+ sq=`{echo $query | urlencode -d}
+ ls $fs_root | grep $"sq | sed '
+ s,^'$fs_root'/,,g
+ s,^,=> ,g'
+ exit
+}
+
exec serve-static