From 4c017c1110db0fa58b67d353d0b864ff06ced63f Mon Sep 17 00:00:00 2001 From: Keagan Date: Sat, 5 Jul 2025 14:29:10 +0200 Subject: [PATCH 1/5] added components and changed config schema --- components/compojure/router.clj | 11 +++++++++++ components/reitit/src/$project$/routes/router.clj | 10 ++++++++++ config.edn | 10 +++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 components/compojure/router.clj create mode 100644 components/reitit/src/$project$/routes/router.clj diff --git a/components/compojure/router.clj b/components/compojure/router.clj new file mode 100644 index 0000000..5c76b6a --- /dev/null +++ b/components/compojure/router.clj @@ -0,0 +1,11 @@ +(ns $project$.routes.router + (:require [compojure.core :refer [routes GET]] + [compojure.route :as route] + [$project$.middleware.interface :as mw] + [$project$.routes.home :as home])) + +(defn create-app [] + (-> + (routes + (GET "/" request [] (home/get request))) + (mw/apply-generic))) diff --git a/components/reitit/src/$project$/routes/router.clj b/components/reitit/src/$project$/routes/router.clj new file mode 100644 index 0000000..3f01ecf --- /dev/null +++ b/components/reitit/src/$project$/routes/router.clj @@ -0,0 +1,10 @@ +(ns $project$.routes.router + (:require [reitit.ring :as ring] + [$project$.middleware.interface :as mw] + [$project$.routes.home :as home])) + +(defn create-app [] + (ring/ring-handler + (ring/router + [["/" {:middleware [[mw/apply-generic]]} + ["" {:get home/get}]]]))) diff --git a/config.edn b/config.edn index d83ba76..be99a50 100644 --- a/config.edn +++ b/config.edn @@ -1,2 +1,10 @@ {:templates {:dir "./templates" - :list ["default" "server"]}} + :list {:default {:deps []} + :server {:deps ["http-kit/http-kit {:mvn/version \"2.8.0\"}" + "ring/ring-core {:mvn/version \"1.13.0\"}" + "ring/ring-json {:mvn/version \"0.5.1\"}"] + :component-groups {:router [:reitit + :compojure]}}}} + :components {:dir "./components" + :list {:reitit {:deps ["metosin/reitit {:mvn/version \"0.9.1\"}"]} + :compojure {:deps ["compojure/compojure {:mvn/version \"1.7.1\"}"]}}}} From 2eb0eb35a9daba12dfe293d60bd202aad36c12c9 Mon Sep 17 00:00:00 2001 From: Keagan Date: Sat, 5 Jul 2025 14:30:42 +0200 Subject: [PATCH 2/5] updated server template --- templates/default/deps.edn | 1 - templates/default/src/{project => $project$}/main.clj | 0 templates/server/deps.edn | 1 - templates/server/src/$project$/hooks.clj | 5 +++++ templates/server/src/$project$/main.clj | 7 +++++++ templates/server/src/$project$/middleware/core.clj | 11 +++++++++++ .../server/src/$project$/middleware/interface.clj | 5 +++++ templates/server/src/$project$/routes/home.clj | 5 +++++ templates/server/src/$project$/routes/interface.clj | 5 +++++ .../server/src/{project => $project$}/server.clj | 6 ++---- 10 files changed, 40 insertions(+), 6 deletions(-) rename templates/default/src/{project => $project$}/main.clj (100%) create mode 100644 templates/server/src/$project$/hooks.clj create mode 100644 templates/server/src/$project$/main.clj create mode 100644 templates/server/src/$project$/middleware/core.clj create mode 100644 templates/server/src/$project$/middleware/interface.clj create mode 100644 templates/server/src/$project$/routes/home.clj create mode 100644 templates/server/src/$project$/routes/interface.clj rename templates/server/src/{project => $project$}/server.clj (86%) diff --git a/templates/default/deps.edn b/templates/default/deps.edn index 54621a2..2bd2c93 100644 --- a/templates/default/deps.edn +++ b/templates/default/deps.edn @@ -1,2 +1 @@ {:paths ["src"] - } diff --git a/templates/default/src/project/main.clj b/templates/default/src/$project$/main.clj similarity index 100% rename from templates/default/src/project/main.clj rename to templates/default/src/$project$/main.clj diff --git a/templates/server/deps.edn b/templates/server/deps.edn index 2af7115..e6a3502 100644 --- a/templates/server/deps.edn +++ b/templates/server/deps.edn @@ -1,2 +1 @@ {:paths ["src" "dev"] - :deps {http-kit/http-kit {:mvn/version 2.8.0}}} diff --git a/templates/server/src/$project$/hooks.clj b/templates/server/src/$project$/hooks.clj new file mode 100644 index 0000000..9133bd1 --- /dev/null +++ b/templates/server/src/$project$/hooks.clj @@ -0,0 +1,5 @@ +(ns $project$.hooks) + +(defn add-shutdown-hook [f] + (let [runtime (Runtime/getRuntime)] + (.addShutdownHook runtime (Thread. #(f))))) diff --git a/templates/server/src/$project$/main.clj b/templates/server/src/$project$/main.clj new file mode 100644 index 0000000..e26fa77 --- /dev/null +++ b/templates/server/src/$project$/main.clj @@ -0,0 +1,7 @@ +(ns $project$.$project$ + (:require [$project$.server :as server] + [$project$.hooks :as hooks])) + +(defn -main [& _] + (server/start-server) + (hooks/add-shutdown-hook server/stop-server)) diff --git a/templates/server/src/$project$/middleware/core.clj b/templates/server/src/$project$/middleware/core.clj new file mode 100644 index 0000000..9096d4c --- /dev/null +++ b/templates/server/src/$project$/middleware/core.clj @@ -0,0 +1,11 @@ +(ns $project$.middleware.core + (:require [ring.middleware.params :refer [wrap-params]] + [ring.middleware.json :refer [wrap-json-response wrap-json-body]] + [ring.middleware.cookies :refer [wrap-cookies]])) + +(defn apply-generic [app] + (-> app + (wrap-params) + (wrap-json-response) + (wrap-json-body {:keywords? true}) + (wrap-cookies))) diff --git a/templates/server/src/$project$/middleware/interface.clj b/templates/server/src/$project$/middleware/interface.clj new file mode 100644 index 0000000..40f29f4 --- /dev/null +++ b/templates/server/src/$project$/middleware/interface.clj @@ -0,0 +1,5 @@ +(ns $project$.middleware.interface + (:require [$project$.middleware.core :as mw])) + +(defn apply-generic [app] + (mw/apply-generic app)) diff --git a/templates/server/src/$project$/routes/home.clj b/templates/server/src/$project$/routes/home.clj new file mode 100644 index 0000000..09c86d7 --- /dev/null +++ b/templates/server/src/$project$/routes/home.clj @@ -0,0 +1,5 @@ +(ns $project$.routes.home + (:require [ring.util.response :as res])) + +(defn get [request] + (res/response {:message "Hello, world!"})) diff --git a/templates/server/src/$project$/routes/interface.clj b/templates/server/src/$project$/routes/interface.clj new file mode 100644 index 0000000..bba1a70 --- /dev/null +++ b/templates/server/src/$project$/routes/interface.clj @@ -0,0 +1,5 @@ +(ns $project$.routes.interface + (:require [$project$.routes.router :as router])) + +(defn create-app [] + (router/create-app)) diff --git a/templates/server/src/project/server.clj b/templates/server/src/$project$/server.clj similarity index 86% rename from templates/server/src/project/server.clj rename to templates/server/src/$project$/server.clj index ec834d2..654537d 100644 --- a/templates/server/src/project/server.clj +++ b/templates/server/src/$project$/server.clj @@ -1,7 +1,6 @@ (ns $project$.server - (:require - [org.httpkit.server :as http] - [$project$.routes.interface :as routes])) + (:require [org.httpkit.server :as http] + [$project$.routes.interface :as routes])) (defonce ^:private *server (atom nil)) @@ -27,4 +26,3 @@ (defn restart-server [] (stop-server) (start-server)) - From d2b0ab070e8af73c76585ad16e0d3a6595822844 Mon Sep 17 00:00:00 2001 From: Keagan Date: Sun, 6 Jul 2025 15:54:41 +0200 Subject: [PATCH 3/5] fixed namespace in server template --- templates/server/src/$project$/main.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/server/src/$project$/main.clj b/templates/server/src/$project$/main.clj index e26fa77..03a8f17 100644 --- a/templates/server/src/$project$/main.clj +++ b/templates/server/src/$project$/main.clj @@ -1,4 +1,4 @@ -(ns $project$.$project$ +(ns $project$.main (:require [$project$.server :as server] [$project$.hooks :as hooks])) From 500949878c1eb6c7e2ba7d9174e537f5b6c5bda3 Mon Sep 17 00:00:00 2001 From: Keagan Date: Sun, 6 Jul 2025 15:55:25 +0200 Subject: [PATCH 4/5] implement system to build project with components --- src/crapp/main.clj | 30 +++++-------------------- src/crapp/template.clj | 50 ++++++++++++++++++++++++++++++++++++++++-- src/crapp/utils.clj | 2 ++ 3 files changed, 55 insertions(+), 27 deletions(-) diff --git a/src/crapp/main.clj b/src/crapp/main.clj index 6a35715..562bcfc 100644 --- a/src/crapp/main.clj +++ b/src/crapp/main.clj @@ -3,30 +3,10 @@ [crapp.utils :as utils] [crapp.config :as conf])) -(defn create-project! [project-name template] - (println (str "Creating " template " project '" project-name "'...")) - (try - (let [project-path (str "./" project-name) - template-path (str (conf/read-value :templates :dir) "/" template)] - (utils/make-directory! project-path) - (template/deploy-template-files! template-path - project-path - {:project project-name})) - (catch Exception e - (println (.getMessage e))) - (finally - (println "Done.")))) - (defn -main [& args] - (cond - (empty? args) - (println "Please provide a project name.") - - (= (count args) 1) - (create-project! (first args) "default") - - (some #(= (last args) %) (conf/read-value :templates :list)) - (create-project! (first args) (last args)) + ;;TODO: make a CLI that allows the user to choose: + ; - project name + ; - template + ; - one component from each component group for the chosen template + ) - (> (count args) 2) - (println "Too many arguments."))) diff --git a/src/crapp/template.clj b/src/crapp/template.clj index e1b3b87..38ccd6d 100644 --- a/src/crapp/template.clj +++ b/src/crapp/template.clj @@ -1,7 +1,23 @@ (ns crapp.template (:require [clojure.string :as string] + [camel-snake-kebab.core :as csk] [crapp.utils :as utils] - [camel-snake-kebab.core :as csk])) + [crapp.config :as conf])) + +(defn compile-deps + "provided the template (keyword) and components (keyword vec), returns a string + of the final list of dependencies in deps.edn format. + e.g. + :deps {first/dependency {:mvn/version ###} + second/dependency {:mvn/version ###}}" + [template components] + (let [template-deps (string/join "\n" (conf/read-value :templates :list template :deps)) + components-deps (->> components + (mapv #(conf/read-value :components :list % :deps)) + (flatten) + (vec) + (string/join \newline))] + (str ":deps {" template-deps \newline components-deps "}"))) (defn parse-template [{:keys [template values]}] (string/join (map @@ -32,13 +48,43 @@ :values values})] (spit (str targetpath "/" filename) replaced))))) +(defn create-project! [project-name template components] + (println (str "Creating " template " project '" project-name "'...")) + (try + (let [project-path (str "./" project-name) + template-path (str (conf/read-value :templates :dir) "/" (name template))] + + (utils/make-directory! project-path) + (deploy-template-files! template-path + project-path + {:project project-name}) + + (doseq [c components] + (let [component-path (str (conf/read-value :components :dir) "/" (name c))] + (deploy-template-files! component-path + project-path + {:project project-name}))) + + (utils/append-file! (str project-path "/deps.edn") + (str (compile-deps template components) "}"))) + + (catch Exception e + (println (.getMessage e))) + (finally + (println "Done.")))) + (comment (let [dir (utils/list-files "./templates/default")] (mapv (fn [f] {:filename (utils/filename f) :is-directory (utils/is-directory f)}) dir)) - (deploy-template-files! "./templates/default" "./testing" {:project "my-app"}) + (deploy-template-files! "./templates/server" "./testing" {:project "my-server-app"}) + (deploy-template-files! "./components/reitit" "./testing" {:project "my-server-app"}) + + (utils/append-file! "testdeps.edn" (str (compile-deps :server [:reitit :compojure]) \})) + + (create-project! "my-server-app" :server [:reitit]) (->> "project" (assoc {:values {:project "my-app"}} :template) diff --git a/src/crapp/utils.clj b/src/crapp/utils.clj index 7c15344..0a0b9e5 100644 --- a/src/crapp/utils.clj +++ b/src/crapp/utils.clj @@ -13,3 +13,5 @@ (defn make-directory! [path] (.mkdir (File. path))) +(defn append-file! [path content] + (spit path content :append true)) From 0d6828ff387207817183aae65eb6227977667647 Mon Sep 17 00:00:00 2001 From: Keagan Date: Sat, 12 Jul 2025 20:14:06 +0200 Subject: [PATCH 5/5] added tui for creating a project changed template tokens to {$ and $} respectively --- .../{ => src/{$project$}/routes}/router.clj | 6 +- .../routes/router.clj | 6 +- src/crapp/main.clj | 68 +++++++++++++++++-- src/crapp/template.clj | 6 +- .../src/{$project$ => {$project$}}/main.clj | 2 +- templates/server/dev/dev.clj | 4 +- templates/server/src/$project$/main.clj | 7 -- .../src/$project$/middleware/interface.clj | 5 -- .../server/src/$project$/routes/interface.clj | 5 -- .../src/{$project$ => {$project$}}/hooks.clj | 2 +- templates/server/src/{$project$}/main.clj | 7 ++ .../middleware/core.clj | 2 +- .../src/{$project$}/middleware/interface.clj | 5 ++ .../routes/home.clj | 2 +- .../src/{$project$}/routes/interface.clj | 5 ++ .../src/{$project$ => {$project$}}/server.clj | 4 +- 16 files changed, 95 insertions(+), 41 deletions(-) rename components/compojure/{ => src/{$project$}/routes}/router.clj (60%) rename components/reitit/src/{$project$ => {$project$}}/routes/router.clj (56%) rename templates/default/src/{$project$ => {$project$}}/main.clj (69%) delete mode 100644 templates/server/src/$project$/main.clj delete mode 100644 templates/server/src/$project$/middleware/interface.clj delete mode 100644 templates/server/src/$project$/routes/interface.clj rename templates/server/src/{$project$ => {$project$}}/hooks.clj (83%) create mode 100644 templates/server/src/{$project$}/main.clj rename templates/server/src/{$project$ => {$project$}}/middleware/core.clj (91%) create mode 100644 templates/server/src/{$project$}/middleware/interface.clj rename templates/server/src/{$project$ => {$project$}}/routes/home.clj (79%) create mode 100644 templates/server/src/{$project$}/routes/interface.clj rename templates/server/src/{$project$ => {$project$}}/server.clj (88%) diff --git a/components/compojure/router.clj b/components/compojure/src/{$project$}/routes/router.clj similarity index 60% rename from components/compojure/router.clj rename to components/compojure/src/{$project$}/routes/router.clj index 5c76b6a..d66672b 100644 --- a/components/compojure/router.clj +++ b/components/compojure/src/{$project$}/routes/router.clj @@ -1,8 +1,8 @@ -(ns $project$.routes.router +(ns {$project$}.routes.router (:require [compojure.core :refer [routes GET]] [compojure.route :as route] - [$project$.middleware.interface :as mw] - [$project$.routes.home :as home])) + [{$project$}.middleware.interface :as mw] + [{$project$}.routes.home :as home])) (defn create-app [] (-> diff --git a/components/reitit/src/$project$/routes/router.clj b/components/reitit/src/{$project$}/routes/router.clj similarity index 56% rename from components/reitit/src/$project$/routes/router.clj rename to components/reitit/src/{$project$}/routes/router.clj index 3f01ecf..115059f 100644 --- a/components/reitit/src/$project$/routes/router.clj +++ b/components/reitit/src/{$project$}/routes/router.clj @@ -1,7 +1,7 @@ -(ns $project$.routes.router +(ns {$project$}.routes.router (:require [reitit.ring :as ring] - [$project$.middleware.interface :as mw] - [$project$.routes.home :as home])) + [{$project$}.middleware.interface :as mw] + [{$project$}.routes.home :as home])) (defn create-app [] (ring/ring-handler diff --git a/src/crapp/main.clj b/src/crapp/main.clj index 562bcfc..9c78fa9 100644 --- a/src/crapp/main.clj +++ b/src/crapp/main.clj @@ -1,12 +1,66 @@ (ns crapp.main (:require [crapp.template :as template] - [crapp.utils :as utils] [crapp.config :as conf])) -(defn -main [& args] - ;;TODO: make a CLI that allows the user to choose: - ; - project name - ; - template - ; - one component from each component group for the chosen template - ) +(defn prompt-template [] + (println "\nChoose your project template:") + (let [templates (-> (conf/read-value :templates :list) + (keys) + (vec))] + (doseq [[template index] (zipmap templates + (->> templates + (count) + (inc) + (range 1)))] + (println (str index ". " (name template)))) + (print (str "Enter template number (1 - " (count templates) " | default 1): ")) + (flush) + + (let [n (or (parse-long (read-line)) 0) + default (first templates)] + (if (or (< n 1) (> n (count templates))) + (do (println "\nUsing default...") + default) + (nth templates (dec n)))))) + +(defn prompt-component [component-group components] + (println (str "\nChoose your " (name component-group) ":")) + + (doseq [[component index] (zipmap components + (->> components + (count) + (inc) + (range 1)))] + (println (str index ". " (name component)))) + + (print (str "Enter component number (1 - " (count components) " | default 1): ")) + (flush) + + (let [n (or (parse-long (read-line)) 0) + default (first components)] + (if (or (< n 1) (> n (count components))) + (do (println (str "\nUsing default: " (name default) "...")) + default) + (nth components (dec n))))) + +(defn -main [] + (println "Welcome to CRAPP!") + (print "Project name: ") + (flush) + (let [project (read-line) + template (prompt-template) + component-groups (conf/read-value :templates + :list + template + :component-groups) + components (reduce (fn [acc [cg cl]] + (conj acc (prompt-component cg cl))) + [] component-groups)] + (template/create-project! project template components))) + +(comment + (prompt-template) + (prompt-component :router [:reitit :compojure]) + (-main) + ()) diff --git a/src/crapp/template.clj b/src/crapp/template.clj index 38ccd6d..d3a8cc6 100644 --- a/src/crapp/template.clj +++ b/src/crapp/template.clj @@ -23,7 +23,7 @@ (string/join (map (fn [part] (or (get values (keyword part)) part)) - (string/split template #"\$")))) + (string/split template #"\{\$|\$\}")))) (defn deploy-template-files! [basepath targetpath values] (doseq [{:keys [filename is-directory]} (mapv @@ -49,7 +49,7 @@ (spit (str targetpath "/" filename) replaced))))) (defn create-project! [project-name template components] - (println (str "Creating " template " project '" project-name "'...")) + (println (str "\nCreating " (name template) " project '" project-name "'...")) (try (let [project-path (str "./" project-name) template-path (str (conf/read-value :templates :dir) "/" (name template))] @@ -94,7 +94,7 @@ (utils/make-directory! "./testing") - (parse-template {:template "hello my name is $name$ and I am $age$ years old" + (parse-template {:template "hello my name is {$name$} and I am {$age$} years old" :values {:name "Keagan" :age 23}}) ()) diff --git a/templates/default/src/$project$/main.clj b/templates/default/src/{$project$}/main.clj similarity index 69% rename from templates/default/src/$project$/main.clj rename to templates/default/src/{$project$}/main.clj index cccce0c..dfa1ccf 100644 --- a/templates/default/src/$project$/main.clj +++ b/templates/default/src/{$project$}/main.clj @@ -1,4 +1,4 @@ -(ns $project$.main) +(ns {$project$}.main) (defn -main [& args] (println "Hello, world!")) diff --git a/templates/server/dev/dev.clj b/templates/server/dev/dev.clj index e6e3868..3865ddb 100644 --- a/templates/server/dev/dev.clj +++ b/templates/server/dev/dev.clj @@ -1,5 +1,5 @@ -(ns $project$.dev - (:require [$project$.server :as server])) +(ns {$project$}.dev + (:require [{$project$}.server :as server])) (defn after-ns-reload [] (server/restart-server)) diff --git a/templates/server/src/$project$/main.clj b/templates/server/src/$project$/main.clj deleted file mode 100644 index 03a8f17..0000000 --- a/templates/server/src/$project$/main.clj +++ /dev/null @@ -1,7 +0,0 @@ -(ns $project$.main - (:require [$project$.server :as server] - [$project$.hooks :as hooks])) - -(defn -main [& _] - (server/start-server) - (hooks/add-shutdown-hook server/stop-server)) diff --git a/templates/server/src/$project$/middleware/interface.clj b/templates/server/src/$project$/middleware/interface.clj deleted file mode 100644 index 40f29f4..0000000 --- a/templates/server/src/$project$/middleware/interface.clj +++ /dev/null @@ -1,5 +0,0 @@ -(ns $project$.middleware.interface - (:require [$project$.middleware.core :as mw])) - -(defn apply-generic [app] - (mw/apply-generic app)) diff --git a/templates/server/src/$project$/routes/interface.clj b/templates/server/src/$project$/routes/interface.clj deleted file mode 100644 index bba1a70..0000000 --- a/templates/server/src/$project$/routes/interface.clj +++ /dev/null @@ -1,5 +0,0 @@ -(ns $project$.routes.interface - (:require [$project$.routes.router :as router])) - -(defn create-app [] - (router/create-app)) diff --git a/templates/server/src/$project$/hooks.clj b/templates/server/src/{$project$}/hooks.clj similarity index 83% rename from templates/server/src/$project$/hooks.clj rename to templates/server/src/{$project$}/hooks.clj index 9133bd1..2e99f5f 100644 --- a/templates/server/src/$project$/hooks.clj +++ b/templates/server/src/{$project$}/hooks.clj @@ -1,4 +1,4 @@ -(ns $project$.hooks) +(ns {$project$}.hooks) (defn add-shutdown-hook [f] (let [runtime (Runtime/getRuntime)] diff --git a/templates/server/src/{$project$}/main.clj b/templates/server/src/{$project$}/main.clj new file mode 100644 index 0000000..5d8fc31 --- /dev/null +++ b/templates/server/src/{$project$}/main.clj @@ -0,0 +1,7 @@ +(ns {$project$}.main + (:require [{$project$}.server :as server] + [{$project$}.hooks :as hooks])) + +(defn -main [& _] + (server/start-server) + (hooks/add-shutdown-hook server/stop-server)) diff --git a/templates/server/src/$project$/middleware/core.clj b/templates/server/src/{$project$}/middleware/core.clj similarity index 91% rename from templates/server/src/$project$/middleware/core.clj rename to templates/server/src/{$project$}/middleware/core.clj index 9096d4c..5588ea1 100644 --- a/templates/server/src/$project$/middleware/core.clj +++ b/templates/server/src/{$project$}/middleware/core.clj @@ -1,4 +1,4 @@ -(ns $project$.middleware.core +(ns {$project$}.middleware.core (:require [ring.middleware.params :refer [wrap-params]] [ring.middleware.json :refer [wrap-json-response wrap-json-body]] [ring.middleware.cookies :refer [wrap-cookies]])) diff --git a/templates/server/src/{$project$}/middleware/interface.clj b/templates/server/src/{$project$}/middleware/interface.clj new file mode 100644 index 0000000..c717414 --- /dev/null +++ b/templates/server/src/{$project$}/middleware/interface.clj @@ -0,0 +1,5 @@ +(ns {$project$}.middleware.interface + (:require [{$project$}.middleware.core :as mw])) + +(defn apply-generic [app] + (mw/apply-generic app)) diff --git a/templates/server/src/$project$/routes/home.clj b/templates/server/src/{$project$}/routes/home.clj similarity index 79% rename from templates/server/src/$project$/routes/home.clj rename to templates/server/src/{$project$}/routes/home.clj index 09c86d7..fa71240 100644 --- a/templates/server/src/$project$/routes/home.clj +++ b/templates/server/src/{$project$}/routes/home.clj @@ -1,4 +1,4 @@ -(ns $project$.routes.home +(ns {$project$}.routes.home (:require [ring.util.response :as res])) (defn get [request] diff --git a/templates/server/src/{$project$}/routes/interface.clj b/templates/server/src/{$project$}/routes/interface.clj new file mode 100644 index 0000000..54259c1 --- /dev/null +++ b/templates/server/src/{$project$}/routes/interface.clj @@ -0,0 +1,5 @@ +(ns {$project$}.routes.interface + (:require [{$project$}.routes.router :as router])) + +(defn create-app [] + (router/create-app)) diff --git a/templates/server/src/$project$/server.clj b/templates/server/src/{$project$}/server.clj similarity index 88% rename from templates/server/src/$project$/server.clj rename to templates/server/src/{$project$}/server.clj index 654537d..9351e31 100644 --- a/templates/server/src/$project$/server.clj +++ b/templates/server/src/{$project$}/server.clj @@ -1,6 +1,6 @@ -(ns $project$.server +(ns {$project$}.server (:require [org.httpkit.server :as http] - [$project$.routes.interface :as routes])) + [{$project$}.routes.interface :as routes])) (defonce ^:private *server (atom nil))