basic config processing OK: override slot values via .env file or OS environment
This commit is contained in:
parent
1a4be837d7
commit
45089fe20b
2 changed files with 12 additions and 8 deletions
16
config.lisp
16
config.lisp
|
@ -24,11 +24,13 @@
|
|||
(let* ((prefix (env-prefix cfg))
|
||||
(ep (env-path cfg))
|
||||
(dotenv-data (if ep (dotenv:read-env ep))))
|
||||
(print prefix)
|
||||
(print dotenv-data)
|
||||
(dolist (sl (override-keys cfg))
|
||||
(let ((key (concatenate 'string prefix (string sl))))
|
||||
(format t "~%key: ~s " key)))))
|
||||
|
||||
|
||||
;(defun dummy (cfg)
|
||||
; (uiop:getenv key))
|
||||
(let* ((key (str:concat prefix (string sl)))
|
||||
(env-val (uiop:getenv key))
|
||||
(dotenv-val (gethash key dotenv-data)))
|
||||
(format t "~%key: ~s, env-val: ~s, dotenv-val: ~s " key env-val dotenv-val)
|
||||
(if env-val
|
||||
(setf (slot-value cfg sl) env-val)
|
||||
(if dotenv-val
|
||||
(setf (slot-value cfg sl) dotenv-val)))))))
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
(defun run ()
|
||||
(let ((t:*test-suite* (t:test-suite "config")))
|
||||
(setf (uiop:getenv "SCOPES_PASSWORD") "very_secret")
|
||||
(load (t:test-path "config-dummy" "etc"))
|
||||
(test-make-path)
|
||||
(test-env-override)
|
||||
|
@ -37,4 +38,5 @@
|
|||
(t:deftest test-env-override ()
|
||||
(format t "~&override-keys: ~s~%" (config:override-keys *config*))
|
||||
(format t "~&env-path ~s~%" (config:env-path *config*))
|
||||
(== (user *config*) "default-user"))
|
||||
(== (user *config*) "user-from-env-file")
|
||||
(== (password *config*) "very_secret"))
|
||||
|
|
Loading…
Add table
Reference in a new issue