diff options
| author | Frederick Muriuki Muriithi | 2026-03-16 02:58:47 -0500 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-03-16 02:58:47 -0500 |
| commit | c31dcecf5c1837dd6cd3689716b90121be0b9fbe (patch) | |
| tree | acdf12cbbadbc0d4fded3215dd7152c0e5bcbea8 /bin | |
| parent | d19fcd79a028e649cb8ab3e42f5796bc353309ed (diff) | |
| download | gn-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 'bin')
| -rwxr-xr-x | bin/gn-guile | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/gn-guile b/bin/gn-guile new file mode 100755 index 0000000..47bd259 --- /dev/null +++ b/bin/gn-guile @@ -0,0 +1,38 @@ +#!/usr/bin/env sh +# -*- mode: scheme; -*- +exec guile --no-auto-compile -e main -s "$0" "$@" +!# + +;;; gn-guile --- GN Guile web service +;;; Copyright © 2026 Frederick M. Muriithi <fredmanglis@gmail.com> +;;; +;;; This file is part of gn-guile +;;; +;;; gn-guile is free software: you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; gn-guile is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with gn-guile. If not, see <https://www.gnu.org/licenses/>. + +(use-modules (config) + (web config) + (web gn-uri) + (web webserver)) + +(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)))) |
