2024-06-15 17:28:29 +09:00
|
|
|
(defpackage #:hp/env
|
2024-04-19 12:15:06 +09:00
|
|
|
(:use #:cl)
|
2024-04-20 03:02:38 +09:00
|
|
|
(:export #:dev-mode-p
|
2024-04-20 07:45:44 +09:00
|
|
|
#:prod-mode-p
|
2024-11-16 20:37:45 +09:00
|
|
|
#:*port*
|
|
|
|
#:*address*))
|
2024-06-15 17:28:29 +09:00
|
|
|
(in-package #:hp/env)
|
2024-04-19 12:15:06 +09:00
|
|
|
|
2024-04-24 00:00:12 +09:00
|
|
|
(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)))))
|
|
|
|
|
2024-04-24 00:39:08 +09:00
|
|
|
(defenv *env* "HP_ENV" :default "dev")
|
2024-11-16 20:37:45 +09:00
|
|
|
(defenv *address* "HP_ADDRESS" :default "localhost")
|
2024-04-24 00:00:12 +09:00
|
|
|
(defenv *port* "HP_PORT" :default 3000 :parser #'parse-integer)
|
2024-04-19 12:15:06 +09:00
|
|
|
|
2024-04-19 22:00:46 +09:00
|
|
|
(defun dev-mode-p ()
|
2024-04-19 12:15:06 +09:00
|
|
|
(string= *env* "dev"))
|
|
|
|
|
2024-04-19 22:00:46 +09:00
|
|
|
(defun prod-mode-p ()
|
2024-04-19 12:15:06 +09:00
|
|
|
(string= *env* "prod"))
|