aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2023-12-22 07:42:57 +0000
committerArun Isaac2023-12-22 12:12:55 +0000
commit6c99c3b28dd7a8b5cf3095a1962bcdc61e9efb67 (patch)
treea03a7d15519dc925a702396c8e3a34ba9fefb91d
parent5fb163738caa16817040da55f09f8a03a95fbe58 (diff)
downloadguix-forge-6c99c3b28dd7a8b5cf3095a1962bcdc61e9efb67.tar.gz
guix-forge-6c99c3b28dd7a8b5cf3095a1962bcdc61e9efb67.tar.lz
guix-forge-6c99c3b28dd7a8b5cf3095a1962bcdc61e9efb67.zip
gunicorn: Use <environment-variable> records.
* guix/forge/gunicorn.scm: Import (forge environment). (gunicorn-shepherd-services): Use <environment-variable> record. * doc/forge.skb (Services)[Specialized application deployment services]{gunicorn service}: Document it. * guix/forge/klaus.scm: Import (forge environment). (klaus-gunicorn-app): Use <environment-variable> record.
-rw-r--r--doc/forge.skb5
-rw-r--r--guix/forge/gunicorn.scm22
-rw-r--r--guix/forge/klaus.scm13
3 files changed, 24 insertions, 16 deletions
diff --git a/doc/forge.skb b/doc/forge.skb
index fb9b0bd..13c8430 100644
--- a/doc/forge.skb
+++ b/doc/forge.skb
@@ -491,8 +491,9 @@ describing sockets to listen on])
(record-field "workers"
[Number of worker processes])
(record-field "environment-variables"
- [Association list mapping environment variables that should
-be set in the execution environment to their values])
+ [List of ,(record-ref "<environment-variable>") objects
+describing environment variables that should be set in the execution
+environment])
(record-field "mappings"
[List of ,(code [<file-system-mapping>]) objects describing
additional directories that should be shared with the container
diff --git a/guix/forge/gunicorn.scm b/guix/forge/gunicorn.scm
index 0f7ec91..2e259a7 100644
--- a/guix/forge/gunicorn.scm
+++ b/guix/forge/gunicorn.scm
@@ -18,6 +18,7 @@
;;; <https://www.gnu.org/licenses/>.
(define-module (forge gunicorn)
+ #:use-module (forge environment)
#:use-module (forge socket)
#:use-module (gnu build linux-container)
#:use-module ((gnu packages admin) #:select (shadow))
@@ -179,16 +180,17 @@
;; https://yhetil.org/guix/m1ilknoi5r.fsf@fastmail.net/
#:namespaces (delq 'net %namespaces))
"--workers" #$(number->string (gunicorn-app-workers app))
- '#$(append (append-map (lambda (socket)
- (list "--bind"
- (socket->gunicorn-bind socket)))
- (gunicorn-app-sockets app))
- (append-map (match-lambda
- ((variable . value)
- (list "--env"
- (string-append variable "=" value))))
- (gunicorn-app-environment-variables app))
- (list (gunicorn-app-wsgi-app-module app))))
+ (list #$@(append (append-map (lambda (socket)
+ (list "--bind"
+ (socket->gunicorn-bind socket)))
+ (gunicorn-app-sockets app))
+ (append-map (lambda (variable)
+ (list "--env"
+ #~(string-append #$(environment-variable-name variable)
+ "="
+ #$(environment-variable-value variable))))
+ (gunicorn-app-environment-variables app))
+ (list (gunicorn-app-wsgi-app-module app)))))
#:user #$name
#:group #$name
#:environment-variables
diff --git a/guix/forge/klaus.scm b/guix/forge/klaus.scm
index 5227b74..b6222c3 100644
--- a/guix/forge/klaus.scm
+++ b/guix/forge/klaus.scm
@@ -18,6 +18,7 @@
;;; <https://www.gnu.org/licenses/>.
(define-module (forge klaus)
+ #:use-module (forge environment)
#:use-module (forge gunicorn)
#:use-module (forge socket)
#:use-module ((gnu packages check) #:select (python-nose python-pytest))
@@ -145,10 +146,14 @@ banner."
(package klaus)
(wsgi-app-module "klaus.contrib.wsgi_autoreload")
(sockets sockets)
- (environment-variables `(("KLAUS_REPOS_ROOT" . ,repository-directory)
- ,@(if site-name
- `(("KLAUS_SITE_NAME" . ,site-name))
- '())))
+ (environment-variables (cons (environment-variable
+ (name "KLAUS_REPOS_ROOT")
+ (value repository-directory))
+ (if site-name
+ (list (environment-variable
+ (name "KLAUS_SITE_NAME")
+ (value site-name)))
+ (list))))
(mappings (list (file-system-mapping
(source repository-directory)
(target source))))))