aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-system.scm121
1 files changed, 0 insertions, 121 deletions
diff --git a/guix-system.scm b/guix-system.scm
deleted file mode 100644
index 7142cea..0000000
--- a/guix-system.scm
+++ /dev/null
@@ -1,121 +0,0 @@
-(use-modules (gnu)
- (gn services databases)
- (gnu packages admin)
- (gnu services shepherd)
- (guix derivations)
- (guix monads)
- (guix profiles)
- (guix search-paths)
- (guix records)
- (guix store)
- (ice-9 match))
-
-(define genenetwork3
- (load "guix.scm"))
-
-(define (packages->profile packages)
- "Return profile with PACKAGES."
- (with-store store
- (run-with-store store
- (mlet* %store-monad ((prof-drv (profile-derivation
- (packages->manifest packages)))
- (profile -> (derivation->output-path prof-drv)))
- (mbegin %store-monad
- (built-derivations (list prof-drv))
- (return profile))))))
-
-(define (packages->environment-variables packages)
- "Return environment variables of a profile with PACKAGES. Return value is an
-association list mapping the names of environment variables to their values."
- (map (match-lambda
- ((search-path . value)
- (cons (search-path-specification-variable search-path)
- value)))
- (profile-search-paths (packages->profile packages))))
-
-(define (packages->profile-environment packages)
- "Return environment of a profile with PACKAGES. Return value is a
-list of environment variables suitable as input to the environ
-function."
- (map (match-lambda
- ((search-path . value)
- (string-append (search-path-specification-variable search-path)
- "=" value)))
- (profile-search-paths (packages->profile packages))))
-
-(define-record-type* <genenetwork3-configuration>
- genenetwork3-configuration make-genenetwork3-configuration
- genenetwork3-configuration?
- (package genenetwork3-configuration-package
- (default genenetwork3))
- (port genenetwork3-configuration-port
- (default 5000)))
-
-(define %genenetwork3-accounts
- (list (user-group (name "genenetwork3")
- (system? #t))
- (user-account
- (name "genenetwork3")
- (group "genenetwork3")
- (system? #t)
- (comment "GeneNetwork 3 user")
- (home-directory "/var/empty")
- (shell (file-append shadow "/sbin/nologin")))))
-
-;; FIXME: Factorize this service into two. We should have a gunicorn
-;; service that is extended by the genenetwork service. This way, the
-;; app is better decoupled from the deployment.
-(define genenetwork3-shepherd-service
- (match-lambda
- (($ <genenetwork3-configuration> package port)
- (shepherd-service
- (documentation "Run GeneNetwork 3.")
- (provision '(genenetwork3))
- (requirement '(networking virtuoso))
- (start #~(begin
- ;; Reference the profile.
- #$(packages->profile (list package))
- ;; Start the gunicorn process.
- (make-forkexec-constructor
- (list #$(file-append gunicorn "/bin/gunicorn")
- "-b" #$(string-append "127.0.0.1:" (number->string port))
- "gn3.app:create_app()")
- #:user "genenetwork3"
- #:group "genenetwork3"
- #:environment-variables
- '#$(packages->profile-environment (list package)))))
- (stop #~(make-kill-destructor))))))
-
-(define genenetwork3-service-type
- (service-type
- (name 'genenetwork3)
- (description "Run GeneNetwork 3.")
- (extensions
- (list (service-extension account-service-type
- (const %genenetwork3-accounts))
- (service-extension shepherd-root-service-type
- (compose list genenetwork3-shepherd-service))))
- (default-value (genenetwork3-configuration))))
-
-(operating-system
- (host-name "genenetwork3")
- (timezone "UTC")
- (locale "en_US.utf8")
- (bootloader (bootloader-configuration
- (bootloader grub-bootloader)
- (targets (list "/dev/sdX"))))
- (file-systems (cons (file-system
- (device "root")
- (mount-point "/")
- (type "ext4"))
- %base-file-systems))
- (users %base-user-accounts)
- (packages %base-packages)
- (services (cons*
- ;; (service virtuoso-service-type
- ;; (virtuoso-configuration
- ;; (http-server-port 8891)))
- (service genenetwork3-service-type
- (genenetwork3-configuration
- (port 5000)))
- %base-services)))