diff options
author | Arun Isaac | 2023-10-05 14:32:35 +0100 |
---|---|---|
committer | Arun Isaac | 2023-10-05 15:00:31 +0100 |
commit | f33e3ec81bb9e0d93dcc2592f85ebcb142746ec0 (patch) | |
tree | 38d1ecb7de46c9f9591894ec3dbb8d5622684143 /genenetwork-development.scm | |
parent | 424aed11628f6b9dbffe5a1996a7c87cb89981a1 (diff) | |
download | gn-machines-f33e3ec81bb9e0d93dcc2592f85ebcb142746ec0.tar.gz |
Construct yoyo.ini using guile-ini.
Constructing INI files from S-expressions instead of using string
substitutions is a little nicer.
* genenetwork-development.scm (gn-auth-migrations-yoyo-ini-gexp): New
function.
(gn-auth-migrations): Use gn-auth-migrations-yoyo-ini-gexp.
Diffstat (limited to 'genenetwork-development.scm')
-rw-r--r-- | genenetwork-development.scm | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/genenetwork-development.scm b/genenetwork-development.scm index a9b8934..687f95f 100644 --- a/genenetwork-development.scm +++ b/genenetwork-development.scm @@ -35,7 +35,7 @@ ((gnu packages gnupg) #:select (guile-gcrypt)) ((gnu packages graphviz) #:select (graphviz)) ((gnu packages guile) #:select (guile-3.0 guile-git guile-zlib)) - ((gnu packages guile-xyz) #:select (guile-dbd-mysql guile-dbi guile-hashing guile-lib guile-libyaml)) + ((gnu packages guile-xyz) #:select (guile-dbd-mysql guile-dbi guile-hashing guile-ini guile-lib guile-libyaml guile-smc)) ((gnu packages guile-xyz) #:select (guile-sparql) #:prefix guix:) ((gnu packages haskell-apps) #:select (shellcheck)) ((gnu packages python-check) #:select (python-mypy)) @@ -227,6 +227,27 @@ command to be executed." (genenetwork3-tests (list "pytest" "-k" "unit_test") (package->development-manifest genenetwork3))) +(define (gn-auth-migrations-yoyo-ini-gexp config) + "Return a G-expression to construct a @file{yoyo.ini} configuration +file for a genenetwork service described by @var{config}, a +@code{<genenetwork-configuration>} object." + (match-record config <genenetwork-configuration> + (auth-db-path) + (with-extensions (list guile-ini guile-lib guile-smc) + #~ (begin + (use-modules (srfi srfi-26) + (ini)) + + (call-with-output-file #$output + (cut scm->ini + `(("DEFAULT" + ("sources" . "gn-auth/migrations/auth/") + ("database" . #$(string-append "sqlite:///" auth-db-path)) + ("migration_table" . "_yoyo_migration") + ("batch_mode" . "on") + ("verbosity" . "2"))) + #:port <>)))))) + (define (gn-auth-migrations config) "Return a G-expression that runs the migrations for the auth(entic|oris)ation database. This is the actual migration run by @@ -245,14 +266,8 @@ the genenetwork user." ;; Run migrations. (invoke #$(file-append yoyo-migrations "/bin/yoyo") "apply" "--config" - #$(mixed-text-file - "yoyo.ini" - "[DEFAULT]\n" - "sources = gn-auth/migrations/auth/\n" - "database = sqlite:///" auth-db-path "\n" - "migration_table = _yoyo_migration\n" - "batch_mode = on\n" - "verbosity = 2")))))) + #$(computed-file "yoyo.ini" + (gn-auth-migrations-yoyo-ini-gexp config))))))) (define (gn-auth-migrations-laminar config) "Return a G-expression that runs the migrations for the |