diff options
Diffstat (limited to 'jakob/dynamic/config.scm')
| -rw-r--r-- | jakob/dynamic/config.scm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/jakob/dynamic/config.scm b/jakob/dynamic/config.scm new file mode 100644 index 0000000..8fc9dea --- /dev/null +++ b/jakob/dynamic/config.scm @@ -0,0 +1,48 @@ +;;; Copyright © 2019 - 2023 Jakob L. Kreuze <zerodaysfordays@sdf.org> +;;; +;;; This program 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. +;;; +;;; This program 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 this program. If not, see +;;; <http://www.gnu.org/licenses/>. + +(define-module (jakob dynamic config) + #:export (%debug-enabled + %api-server-port + paramstring-for-dbname + absolute-url)) + +;; Whether or not to enable "debug mode", in which: +;; +;; - Log messages are written to stdout. +;; - Rate limiting is disabled. +(define %debug-enabled (make-parameter (or (getenv "API_SERVER_DEBUG") #f))) + +;; Port that the API server should listen on +(define %api-server-port (make-parameter (or (getenv "API_SERVER_PORT") 8080))) + +;; Should be fairly self-explanatory. +(define %postgresql-user (make-parameter (or (getenv "API_SERVER_DB_USER") "jakob_dynamic"))) +(define %postgresql-host (make-parameter (or (getenv "API_SERVER_DB_HOST") "localhost"))) +(define %postgresql-port (make-parameter (or (getenv "API_SERVER_DB_PORT") "5432"))) + +(define (paramstring-for-dbname dbname) + (format #f "host=~a port=~a user=~a dbname=~a" + (%postgresql-host) + (%postgresql-port) + (%postgresql-user) + dbname)) + +(define (absolute-url relative-path) + "Produce an absolute URL from the identifier RELATIVE-PATH" + (if (%debug-enabled) + (format #f "http://localhost:~a/~a" (%api-server-port) relative-path) + (string-append "https://jakob.space" relative-path))) |