From fc1532b7532f7bb46faecb34720f30b72359f4f4 Mon Sep 17 00:00:00 2001
From: Allen Gilliland <agilliland@gmail.com>
Date: Fri, 6 Mar 2015 16:01:26 -0800
Subject: [PATCH] custom leiningen tasks for running npm and gulp so that we
 can now run all our build steps via leiningen.

---
 .gitignore                    |  3 ++-
 .lein-classpath               |  1 +
 lein_tasks/leiningen/gulp.clj | 11 +++++++++++
 lein_tasks/leiningen/npm.clj  | 11 +++++++++++
 4 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 .lein-classpath
 create mode 100644 lein_tasks/leiningen/gulp.clj
 create mode 100644 lein_tasks/leiningen/npm.clj

diff --git a/.gitignore b/.gitignore
index 7e2fa5822df..44b5927d98a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,8 @@ pom.xml
 pom.xml.asc
 *.jar
 *.class
-/.lein-*
+/.lein-env
+/.lein-repl-history
 /.nrepl-port
 .hgignore
 .hg/
diff --git a/.lein-classpath b/.lein-classpath
new file mode 100644
index 00000000000..a38ac2ef838
--- /dev/null
+++ b/.lein-classpath
@@ -0,0 +1 @@
+lein_tasks
diff --git a/lein_tasks/leiningen/gulp.clj b/lein_tasks/leiningen/gulp.clj
new file mode 100644
index 00000000000..79769423c70
--- /dev/null
+++ b/lein_tasks/leiningen/gulp.clj
@@ -0,0 +1,11 @@
+(ns leiningen.gulp
+  (:use clojure.java.shell))
+
+
+(defn gulp [projects & args]
+  ;; TODO - some better validations such as checking that we have gulp available
+  (println "Running `gulp build` to assemble frontend assets into a better format")
+  (let [result (sh (str (:root projects) "/node_modules/gulp/bin/gulp.js") "build")]
+    (if (= 0 (:exit result))
+      (println (:out result))
+      (println (:err result)))))
\ No newline at end of file
diff --git a/lein_tasks/leiningen/npm.clj b/lein_tasks/leiningen/npm.clj
new file mode 100644
index 00000000000..79f9e4d93bd
--- /dev/null
+++ b/lein_tasks/leiningen/npm.clj
@@ -0,0 +1,11 @@
+(ns leiningen.npm
+  (:use clojure.java.shell))
+
+
+(defn npm [projects & args]
+  ;; TODO - some better validations such as checking if `npm` is available
+  (println "Running `npm install` to download javascript dependencies")
+  (let [result (sh "npm" "install")]
+    (if (= 0 (:exit result))
+      (println (:out result))
+      (println (:err result)))))
\ No newline at end of file
-- 
GitLab