Created
February 26, 2015 14:25
-
-
Save schmir/ba10a59f53254f797cc9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require '[boot.pod :as pod] | |
'[boot.tmpdir :as tmpdir] | |
'[clojure.java.io :as io] | |
'[clojure.string :as string]) | |
(task-options! | |
pom {:project 'steinmetz | |
:version "0.1.0"} | |
repl {:init-ns 'user} | |
aot {:namespace #{}} | |
jar {:main 'steinmetz.fx.Splash}) | |
(set-env! | |
:source-paths #{"java-src"} | |
:resource-paths #{"resources" "src"} | |
:repositories [["clojars" "http://clojars.org/repo/"] | |
["maven-central" "http://repo1.maven.org/maven2/"] | |
["springsource-release" "http://repository.springsource.com/maven/bundles/release"] | |
["springsource-external" "http://repository.springsource.com/maven/bundles/external"]] | |
:dependencies '[[org.clojure/clojure "1.6.0"] | |
[org.clojure/data.zip "0.1.1"] | |
[commons-validator "1.4.1"] | |
[fipp "0.5.2"] | |
[http-kit "2.1.19"] | |
[instaparse "1.3.5"] | |
[compojure "1.3.2"] | |
[liberator "0.12.2"] | |
[org.clojure/core.memoize "0.5.7"] | |
[org.clojure/data.csv "0.1.2"] | |
[com.cemerick/friend "0.2.1"] | |
[org.clojars.pntblnk/clj-ldap "0.0.9"] | |
[authenticator "0.1.1"] | |
[org.clojure/tools.namespace "0.2.9"] ; ring-devel depends on an older version | |
[ring/ring-core "1.3.2"] | |
[ring/ring-devel "1.3.2"] | |
[trptcolin/versioneer "0.1.1"] | |
[clj-time "0.9.0"] | |
[selmer "0.8.0"] | |
[environ "1.0.0"] | |
[robert/bruce "0.7.1"] | |
[com.oracle/javafx-runtime "2.2.0"] | |
[de.systemexit/controlsfx "8.20.8p2"] | |
[com.informix.jdbc/com.springsource.com.informix.jdbc "3.0.0.JC3"] | |
[org.clojure/java.jdbc "0.3.6"] | |
[com.taoensso/timbre "3.4.0"] | |
[honeysql "0.4.3"]]) | |
(deftask dot-lein-env | |
"copy the .git/.lein-env to .lein-env if the latter is non-existent" | |
[] | |
(with-pre-wrap fileset | |
(try | |
(let [target-path (java.nio.file.Paths/get "" (into-array String [".lein-env"])) | |
git-path (java.nio.file.Paths/get ".git" (into-array String [".lein-env"]))] | |
(when-not (java.nio.file.Files/exists target-path (into-array java.nio.file.LinkOption [])) | |
(if (.startsWith (System/getProperty "os.name") "Windows") | |
(do | |
(println "Copying" (str git-path) "to" (str target-path)) | |
(spit (str target-path) (slurp (str git-path)))) | |
(do | |
(println "Symlinking" (str git-path) "to" (str target-path)) | |
(java.nio.file.Files/createSymbolicLink target-path git-path (into-array java.nio.file.attribute.FileAttribute []))))))) | |
fileset)) | |
(deftask gen-dbneu | |
"generate resources/META-INF/steinmetz/dbneu-schema.edn" | |
[] | |
(with-pre-wrap fileset | |
(eval | |
'(do | |
(require 'steinmetz.informix-inspect) | |
(steinmetz.informix-inspect/spit-dbneu))) | |
fileset)) | |
(deftask spit-ang-table | |
"generate resources/META-INF/steinmetz/static-tables/ang.edn" | |
[] | |
(with-pre-wrap fileset | |
(eval | |
'(do | |
(require 'steinmetz.informix-inspect) | |
(steinmetz.informix-inspect/spit-ang-table))) | |
fileset)) | |
(deftask dev-inject | |
"inject some useful functions to clojure.core with '>' as prefix | |
This injects some functions like >refresh, >doc, >pprint, | |
>print-table" | |
[] | |
(with-pre-wrap fileset | |
(set-env! | |
:dependencies #(vec (concat % '[[im.chit/vinyasa "0.3.3"] | |
[pjstadig/humane-test-output "0.6.0"] | |
[org.clojure/tools.namespace "0.2.9"] | |
[criterium "0.4.3"]]))) | |
(eval | |
'(do | |
(require 'clojure.tools.namespace.repl) | |
(require '[vinyasa.inject :as inject]) | |
(apply clojure.tools.namespace.repl/set-refresh-dirs (boot.core/get-env :directories)) | |
(inject/in clojure.core > | |
[criterium.core quick-bench] | |
[clojure.tools.namespace.repl refresh] | |
[clojure.repl apropos dir doc find-doc source pst [root-cause >cause]] | |
[clojure.java.javadoc javadoc] | |
[clojure.pprint pprint] | |
[clojure.pprint print-table] | |
[clojure.java.shell sh]))) | |
fileset)) | |
(deftask dev-profile | |
"enable development profile, add dev directory to classpath | |
This injects some functions like >refresh, >doc, >pprint, | |
>print-table" | |
[] | |
(comp | |
(dot-lein-env) | |
(with-pre-wrap fileset | |
(set-env! :source-paths #(conj % "dev")) | |
(load-file "patch-proxy-name.clj") | |
fileset) | |
(dev-inject) | |
(with-pre-wrap fileset | |
(require 'user :reload) | |
fileset))) | |
(deftask dev-repl | |
"start development repl" | |
[] | |
(comp (dev-profile) (repl))) | |
(deftask count-files | |
"print the number of files in the fileset, use for debugging" | |
[] | |
(with-pre-wrap fileset | |
(println "files" (count (ls fileset))) | |
fileset)) | |
(deftask package | |
"" | |
[] | |
(let [tgt (temp-dir!)] | |
(with-pre-wrap fileset | |
(empty-dir! tgt) | |
(let [jars (by-ext [".jar"] (output-files fileset)) | |
jar (first jars)] | |
(info "Running javapackage. This may take a while.\n") | |
(println (clojure.java.shell/sh | |
"javapackager" "-deploy" "-vendor" "zvk steinmetz" "-title" "steinmetz" | |
"-description" "zvk steinmetz arbeitsplatz" | |
"-srcfiles" (.getPath (tmpdir/file jar)) | |
"-outdir" (.getPath tgt) | |
"-outfile" "steinmetz" | |
"-appclass" "steinmetz.fx.Splash" | |
"-name" "steinmetz" "-native" "image"))) | |
(-> fileset (add-resource tgt) commit!)))) | |
(deftask installer | |
"" | |
[] | |
(let [tgt (temp-dir!) | |
iss-template (slurp "steinmetz.iss") | |
iss-src-path (str (io/file (str tgt) "steinmetz.iss"))] | |
(with-pre-wrap fileset | |
(empty-dir! tgt) | |
(let [exe (->> fileset output-files (by-name ["steinmetz.exe"]) first) | |
dir (.getParent (io/file (str (:dir exe)) (:path exe))) | |
iss-src (-> iss-template | |
(string/replace "$OUTPUTDIR" (str tgt)) | |
(string/replace "$DIR" dir) | |
(string/replace "$VERSION" "0.1"))] | |
(spit iss-src-path iss-src) | |
(info "Running Inno Setup. This may take a while.\n") | |
(println (clojure.java.shell/sh "iscc" iss-src-path))) | |
(-> fileset (add-resource tgt) commit!)))) | |
(deftask fast-release | |
"build a release without aot compiling" | |
[] | |
(comp (pom) (javac) (uber) (jar :file "steinmetz-test.jar"))) | |
(deftask release | |
"build a release (with aot compiling)" | |
[] | |
(comp (pom) (javac) (aot :all true) (sift :to-source [#".*\.clj$"]) (uber) (jar :file "steinmetz.jar"))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment