Add defenv macro
This commit is contained in:
parent
365a262e9d
commit
385e98f2ef
1 changed files with 10 additions and 3 deletions
|
@ -5,12 +5,19 @@
|
||||||
#:*port*))
|
#:*port*))
|
||||||
(in-package #:hp/config/env)
|
(in-package #:hp/config/env)
|
||||||
|
|
||||||
(defparameter *env* (or (uiop:getenv "HP_ENV") "dev"))
|
(defmacro defenv (name env &key default parser)
|
||||||
|
(let ((env-val (gensym "val")))
|
||||||
|
`(defparameter ,name
|
||||||
|
(let ((,env-val (uiop:getenv ,env)))
|
||||||
|
(if ,env-val
|
||||||
|
(funcall ,(or parser '#'identity) ,env-val)
|
||||||
|
,default)))))
|
||||||
|
|
||||||
|
(defenv *env* "HP_ENV" :default "dev")
|
||||||
|
(defenv *port* "HP_PORT" :default 3000 :parser #'parse-integer)
|
||||||
|
|
||||||
(defun dev-mode-p ()
|
(defun dev-mode-p ()
|
||||||
(string= *env* "dev"))
|
(string= *env* "dev"))
|
||||||
|
|
||||||
(defun prod-mode-p ()
|
(defun prod-mode-p ()
|
||||||
(string= *env* "prod"))
|
(string= *env* "prod"))
|
||||||
|
|
||||||
(defparameter *port* (parse-integer (or (uiop:getenv "HP_PORT") "3000")))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue