From 0952cb2e13c5d842ab287f2d15826ec097a776dd Mon Sep 17 00:00:00 2001
From: paku <paku@skyizwhite.dev>
Date: Fri, 19 Apr 2024 12:15:06 +0900
Subject: [PATCH] Update Makefile

---
 Makefile        |  8 +++++++-
 src/app.lisp    |  6 ++++++
 src/config.lisp | 14 ++++++++++++++
 3 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 src/config.lisp

diff --git a/Makefile b/Makefile
index 8b85e68..99d626f 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,13 @@ install: ## Install dependencies
 	@qlot install
 
 dev: ## Run dev mode
-	@tailwindcss -i ./src/assets/css/global.css -o ./src/assets/css/dist.css --watch
+	@tailwindcss -i ./src/assets/css/global.css -o ./src/assets/css/dist.css --watch=always < /dev/null &
+
+stop: ## Stop dev mode
+	@pkill -f tailwind
+
+build: ## Build
+	@tailwindcss -i ./src/assets/css/global.css -o ./src/assets/css/dist.css
 
 help: ## Show options
 	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
diff --git a/src/app.lisp b/src/app.lisp
index 10ac5ec..951042e 100644
--- a/src/app.lisp
+++ b/src/app.lisp
@@ -4,6 +4,7 @@
   (:local-nicknames (#:jg #:jingle))
   (:local-nicknames (#:fbr #:ningle-fbr))
   (:local-nicknames (#:mw #:hp/middlewares/*))
+  (:local-nicknames (#:cfg #:hp/config))
   (:export #:start
            #:stop
            #:update))
@@ -13,9 +14,14 @@
                                  :port 3000))
 
 (defun start ()
+  (uiop:run-program (if (cfg:is-dev-p)
+                        "make dev"
+                        "make build"))
   (jg:start *app*))
 
 (defun stop ()
+  (when (cfg:is-dev-p)
+    (uiop:run-program "make stop"))
   (jg:stop *app*))
 
 (defun setup ()
diff --git a/src/config.lisp b/src/config.lisp
new file mode 100644
index 0000000..b55ab3d
--- /dev/null
+++ b/src/config.lisp
@@ -0,0 +1,14 @@
+(defpackage #:hp/config
+  (:use #:cl)
+  (:export #:*env*
+           #:is-dev-p
+           #:is-prod-p))
+(in-package #:hp/config)
+
+(defparameter *env* (or (uiop:getenv "HP_ENV") "dev"))
+
+(defun is-dev-p ()
+  (string= *env* "dev"))
+
+(defun is-prod-p ()
+  (string= *env* "prod"))