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))
|
(let* ((prefix (env-prefix cfg))
|
||||||
(ep (env-path cfg))
|
(ep (env-path cfg))
|
||||||
(dotenv-data (if ep (dotenv:read-env ep))))
|
(dotenv-data (if ep (dotenv:read-env ep))))
|
||||||
(print prefix)
|
(print dotenv-data)
|
||||||
(dolist (sl (override-keys cfg))
|
(dolist (sl (override-keys cfg))
|
||||||
(let ((key (concatenate 'string prefix (string sl))))
|
(let* ((key (str:concat prefix (string sl)))
|
||||||
(format t "~%key: ~s " key)))))
|
(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)
|
||||||
;(defun dummy (cfg)
|
(if env-val
|
||||||
; (uiop:getenv key))
|
(setf (slot-value cfg sl) env-val)
|
||||||
|
(if dotenv-val
|
||||||
|
(setf (slot-value cfg sl) dotenv-val)))))))
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
(defun run ()
|
(defun run ()
|
||||||
(let ((t:*test-suite* (t:test-suite "config")))
|
(let ((t:*test-suite* (t:test-suite "config")))
|
||||||
|
(setf (uiop:getenv "SCOPES_PASSWORD") "very_secret")
|
||||||
(load (t:test-path "config-dummy" "etc"))
|
(load (t:test-path "config-dummy" "etc"))
|
||||||
(test-make-path)
|
(test-make-path)
|
||||||
(test-env-override)
|
(test-env-override)
|
||||||
|
@ -37,4 +38,5 @@
|
||||||
(t:deftest test-env-override ()
|
(t:deftest test-env-override ()
|
||||||
(format t "~&override-keys: ~s~%" (config:override-keys *config*))
|
(format t "~&override-keys: ~s~%" (config:override-keys *config*))
|
||||||
(format t "~&env-path ~s~%" (config:env-path *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