From 79e32a55801fc53c8d60843c6676ca05cc899299 Mon Sep 17 00:00:00 2001
From: Tim <contact@bytim.eu>
Date: Mon, 5 May 2025 21:32:52 +0200
Subject: Initial commit

---
 src/chef/core.clj        |  8 ++++++++
 src/chef/pages/admin.clj | 10 ++++++++++
 src/chef/pages/home.clj  | 10 ++++++++++
 src/chef/pages/utils.clj |  8 ++++++++
 src/chef/routes.clj      | 13 +++++++++++++
 5 files changed, 49 insertions(+)
 create mode 100644 src/chef/core.clj
 create mode 100644 src/chef/pages/admin.clj
 create mode 100644 src/chef/pages/home.clj
 create mode 100644 src/chef/pages/utils.clj
 create mode 100644 src/chef/routes.clj

(limited to 'src/chef')

diff --git a/src/chef/core.clj b/src/chef/core.clj
new file mode 100644
index 0000000..86aeb17
--- /dev/null
+++ b/src/chef/core.clj
@@ -0,0 +1,8 @@
+(ns chef.core
+  (:require [org.httpkit.server :as http-server]
+            [chef.routes :as croutes])
+  (:gen-class))
+
+(defn -main [& args]
+  (println "Starting http server...")
+  (http-server/run-server croutes/ring-handler {:port 8080}))
diff --git a/src/chef/pages/admin.clj b/src/chef/pages/admin.clj
new file mode 100644
index 0000000..c06b475
--- /dev/null
+++ b/src/chef/pages/admin.clj
@@ -0,0 +1,10 @@
+(ns chef.pages.admin
+  (:require [chef.pages.utils :as cputils]
+            [hiccup2.core :as html]
+            [ring.util.response :as ruresp]))
+
+(defn handler [req]
+  (-> (cputils/gen-page "chef - Dashboard" [:i "Coming soon..."])
+      html/html
+      str
+      ruresp/response))
diff --git a/src/chef/pages/home.clj b/src/chef/pages/home.clj
new file mode 100644
index 0000000..725ba2b
--- /dev/null
+++ b/src/chef/pages/home.clj
@@ -0,0 +1,10 @@
+(ns chef.pages.home
+  (:require [hiccup2.core :as html]
+            [ring.util.response :as ruresp]
+            [chef.pages.utils :as cputils]))
+
+(defn handler [req]
+  (-> (cputils/gen-page "chef" [:i "Coming soon..."])
+      html/html
+      str
+      ruresp/response))
diff --git a/src/chef/pages/utils.clj b/src/chef/pages/utils.clj
new file mode 100644
index 0000000..72d33fd
--- /dev/null
+++ b/src/chef/pages/utils.clj
@@ -0,0 +1,8 @@
+(ns chef.pages.utils)
+
+(defn gen-page [title & content]
+  [:html
+   [:head
+    [:meta {:name "viewport" :content "width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"}]
+    [:title title]]
+   (apply conj [:body] content [[:script {:src "/static/htmx.js"}]])])
diff --git a/src/chef/routes.clj b/src/chef/routes.clj
new file mode 100644
index 0000000..51c721a
--- /dev/null
+++ b/src/chef/routes.clj
@@ -0,0 +1,13 @@
+(ns chef.routes
+  (:require [reitit.ring :as rring]
+
+            [chef.pages.home :as cphome]
+            [chef.pages.admin :as cpadmin]))
+
+(def router [["/" {:get {:handler cphome/handler}}]
+             ["/admin/" {:get {:handler cpadmin/handler}}]
+             ["/static/*" (rring/create-resource-handler)]])
+
+(def ring-handler (-> router
+                      rring/router
+                      (rring/ring-handler (rring/redirect-trailing-slash-handler))))
-- 
cgit v1.2.3