summaryrefslogtreecommitdiff
path: root/jakob/dynamic/config.scm
diff options
context:
space:
mode:
Diffstat (limited to 'jakob/dynamic/config.scm')
-rw-r--r--jakob/dynamic/config.scm48
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)))