forked from boot-clj/boot-new
-
-
Notifications
You must be signed in to change notification settings - Fork 27
/
template.clj
27 lines (26 loc) · 1.15 KB
/
template.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(ns clj.new.template
(:require [clj.new.templates :refer [project-name
renderer sanitize year date ->files]]))
(defn template
"A meta-template for 'clj new' templates."
[name]
(let [render (renderer "template")
data {:raw-name name
:name (project-name name)
:sanitized (sanitize (project-name name))
:placeholder "{{sanitized}}"
:year (year)
:date (date)}]
(println "Generating a project called"
(project-name name)
"that is a 'clj-new' template")
(->files data
["deps.edn" (render "deps.edn" data)]
["README.md" (render "README.md" data)]
[".gitignore" (render "gitignore" data)]
[".hgignore" (render "hgignore" data)]
["src/clj/new/{{sanitized}}.clj" (render "temp.clj" data)]
["resources/clj/new/{{sanitized}}/foo.clj" (render "foo.clj")]
["resources/clj/new/{{sanitized}}/deps.edn" (render "deps.edn" data)]
["LICENSE" (render "LICENSE" data)]
["CHANGELOG.md" (render "CHANGELOG.md" data)])))