forked from boot-clj/boot-new
-
-
Notifications
You must be signed in to change notification settings - Fork 27
/
lib.clj
29 lines (27 loc) · 1.22 KB
/
lib.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
28
29
(ns clj.new.lib
"Generate a library project."
(:require [clj.new.templates
:refer [renderer project-data project-name ->files]]))
(defn lib
"A general project template for libraries.
Accepts a group id in the project name: `clj -A:new lib foo.bar/baz`"
[name & args]
(let [render (renderer "lib")
data (merge {:description "FIXME: my new library."}
(project-data name))]
(println "Generating a project called"
(project-name name)
"based on the 'lib' template.")
(println "The lib template is intended for library projects, not applications.")
(->files data
["deps.edn" (render "deps.edn" data)]
["README.md" (render "README.md" data)]
["doc/intro.md" (render "intro.md" data)]
[".gitignore" (render "gitignore" data)]
[".hgignore" (render "hgignore" data)]
["src/{{nested-dirs}}.clj" (render "core.clj" data)]
["test/{{nested-dirs}}_test.clj" (render "test.clj" data)]
["LICENSE" (render "LICENSE" data)]
["CHANGELOG.md" (render "CHANGELOG.md" data)]
["pom.xml" (render "pom.xml" data)]
["resources/.keep" ""])))