Skip to content

Commit

Permalink
Add a Leiningen template (#47)
Browse files Browse the repository at this point in the history
  • Loading branch information
skylee03 committed Jan 16, 2024
1 parent 74da812 commit 114a74d
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 0 deletions.
12 changes: 12 additions & 0 deletions lein-template/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/target
/classes
/checkouts
pom.xml
pom.xml.asc
*.jar
*.class
/.lein-*
/.nrepl-port
/.prepl-port
.hgignore
.hg/
6 changes: 6 additions & 0 deletions lein-template/project.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
(defproject com.github.clojure-finance/lein-template.datajure "1.1.0"
:description "Leiningen template for a Datajure application."
:url "https://github.com/clojure-finance/datajure/tree/main/lein-template"
:license {:name "The MIT License"
:url "http://opensource.org/licenses/MIT"}
:eval-in-leiningen true)
1 change: 1 addition & 0 deletions lein-template/resources/leiningen/new/datajure/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# {{name}}
14 changes: 14 additions & 0 deletions lein-template/resources/leiningen/new/datajure/core.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
(ns {{namespace}}.core
(:require
[datajure.dsl :as dtj]))

(defn -main
[]
(dtj/set-backend "tech.ml.dataset")
(def data {:age [31 25 18 18 25]
:name ["a" "b" "c" "c" "d"]
:salary [200 500 200 370 3500]})
(-> data
(dtj/dataset)
(dtj/query [[:salary #(< 300 %)] [:age #(> 20 %)]] [])
(dtj/print)))
14 changes: 14 additions & 0 deletions lein-template/resources/leiningen/new/datajure/gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
pom.xml
pom.xml.asc
*.jar
*.class
/lib/
/classes/
/target/
/checkouts/
.lein-deps-sum
.lein-repl-history
.lein-plugins/
.lein-failures
.nrepl-port
.cpcache/
19 changes: 19 additions & 0 deletions lein-template/resources/leiningen/new/datajure/project.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
(defproject {{raw-name}} "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
:url "https://www.eclipse.org/legal/epl-2.0/"}
:jvm-opts ["--add-opens=java.base/java.nio=ALL-UNNAMED"
"--add-opens=java.base/java.net=ALL-UNNAMED"
"--add-opens=java.base/java.lang=ALL-UNNAMED"
"--add-opens=java.base/java.util=ALL-UNNAMED"
"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED"]
:dependencies [[com.github.clojure-finance/datajure "1.1.0"]
[org.apache.logging.log4j/log4j-core "2.21.0"]
[org.clojure/clojure "1.11.1"]]
:jar-name "{{raw-name}}.jar"
:uberjar-name "{{raw-name}}-standalone.jar"
:profiles {:uberjar {:aot :all}}
:main ^:skip-aot {{namespace}}.core
:target-path "target/%s")
20 changes: 20 additions & 0 deletions lein-template/src/leiningen/new/datajure.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
(ns leiningen.new.datajure
(:require [leiningen.new.templates :as tmpl]
[leiningen.core.main :as main]))

(def render (tmpl/renderer "datajure"))

(defn datajure
"A Datajure project template."
[name]
(let [main-ns (tmpl/sanitize-ns name)
data {:raw-name name
:name (tmpl/project-name name)
:namespace main-ns
:nested-dirs (tmpl/name-to-path main-ns)}]
(main/info "Generating fresh 'lein new' com.github.clojure-finance/datajure project.")
(tmpl/->files data
[".gitignore" (render "gitignore" data)]
["README.md" (render "README.md" data)]
["project.clj" (render "project.clj" data)]
["src/{{nested-dirs}}/core.clj" (render "core.clj" data)])))

0 comments on commit 114a74d

Please sign in to comment.