about summary refs log tree commit diff
path: root/web
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2026-03-16 02:58:47 -0500
committerFrederick Muriuki Muriithi2026-03-16 02:58:47 -0500
commitc31dcecf5c1837dd6cd3689716b90121be0b9fbe (patch)
treeacdf12cbbadbc0d4fded3215dd7152c0e5bcbea8 /web
parentd19fcd79a028e649cb8ab3e42f5796bc353309ed (diff)
downloadgn-guile-c31dcecf5c1837dd6cd3689716b90121be0b9fbe.tar.gz
Add runnable bin/gn-guile script to start the webserver
* README.md: Update the documentation on how to run the webserver.
* bin/gn-guile: New runnable script to start webserver.
* web/webserver.scm: Make into Guile/Scheme module and remove
  entry-point `main' function.
Diffstat (limited to 'web')
-rw-r--r--web/webserver.scm78
1 files changed, 34 insertions, 44 deletions
diff --git a/web/webserver.scm b/web/webserver.scm
index 69f5098..8c909a5 100644
--- a/web/webserver.scm
+++ b/web/webserver.scm
@@ -1,36 +1,37 @@
-(use-modules (json)
-             (config)
-             (ice-9 match)
-             (ice-9 format)
-             (ice-9 iconv)
-             (ice-9 receive)
-             (ice-9 string-fun)
-             (ice-9 exceptions)
-             (srfi srfi-1)
-             (srfi srfi-11)
-             (srfi srfi-13)
-             (srfi srfi-19)
-             (srfi srfi-26)
-             (rnrs io ports)
-             (rnrs bytevectors)
-             (web http)
-             (web client)
-             (web request)
-             (web response)
-             (web uri)
-             (web server)
-             (gn cache memoize)
-             (web gn-uri)
-             (gn db sparql)
-             (gn data dataset)
-             (gn data species)
-             (gn data group)
-             (gn runner gemma)
-             (web sxml)
-             (web config)
-             (web view view)
-             (web view doc)
-             (web view markdown))
+(define-module (web webserver)
+  #:use-module (json)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 format)
+  #:use-module (ice-9 iconv)
+  #:use-module (ice-9 receive)
+  #:use-module (ice-9 string-fun)
+  #:use-module (ice-9 exceptions)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-13)
+  #:use-module (srfi srfi-19)
+  #:use-module (srfi srfi-26)
+  #:use-module (rnrs io ports)
+  #:use-module (rnrs bytevectors)
+  #:use-module (web http)
+  #:use-module (web client)
+  #:use-module (web request)
+  #:use-module (web response)
+  #:use-module (web uri)
+  #:use-module (web server)
+  #:use-module (gn cache memoize)
+  #:use-module (web gn-uri)
+  #:use-module (gn db sparql)
+  #:use-module (gn data dataset)
+  #:use-module (gn data species)
+  #:use-module (gn data group)
+  #:use-module (gn runner gemma)
+  #:use-module (web sxml)
+  #:use-module (web config)
+  #:use-module (web view view)
+  #:use-module (web view doc)
+  #:use-module (web view markdown)
+  #:export (start-web-server))
 
 (define (get-extension filename)
   (let ((dot-pos (string-rindex filename #\.)))
@@ -393,14 +394,3 @@ otherwise search for set/group data"
               'http
               (list #:addr (inet-pton AF_INET address)
                     #:port port)))
-
-(define (main args)
-  (write (string-append "Starting Guile REST API " get-version " server!"))
-  (write args)
-  (newline)
-  (let* ((options (parse-cli-options args))
-         (listen (option-ref options 'port)))
-    (when (option-ref options 'write)
-      (options-write options))
-    (display `("listening on" ,listen))
-    (start-web-server "127.0.0.1" listen (cli-options->gn-guile-config options))))