Created
August 22, 2016 05:27
-
-
Save abhi18av/fe2e3f5868471c4efb81d8675fbfe079 to your computer and use it in GitHub Desktop.
build.boot ( for cljsjs draftjs package )
This file contains hidden or 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
(set-env! | |
:resource-paths #{"resources"} | |
:dependencies '[[cljsjs/boot-cljsjs "0.5.2" :scope "test"]]) | |
(require '[cljsjs.boot-cljsjs.packaging :refer :all]) | |
(def +lib-version+ "0.8.1") | |
(def +version+ (str +lib-version+ "-0")) | |
(def +checksum+ "d88f8ee03b9188b2a942ca9d83d5188c") | |
(task-options! | |
pom {:project 'cljsjs/draft | |
:version +version+ | |
:description "A React framework for building text editors" | |
:url "http://facebook.github.io/draft-js" | |
:scm {:url "https://github.com/cljsjs/packages"} | |
:license {"BSD" "http://opensource.org/licenses/BSD-3-Clause"}}) | |
;; TODO: Should eventually be included in boot.core | |
(defn with-files | |
"Runs middleware with filtered fileset and merges the result back into complete fileset." | |
[p middleware] | |
(fn [next-handler] | |
(fn [fileset] | |
(let [merge-fileset-handler (fn [fileset'] | |
(next-handler (commit! (assoc fileset :tree (merge (:tree fileset) (:tree fileset')))))) | |
handler (middleware merge-fileset-handler) | |
fileset (assoc fileset :tree (reduce-kv | |
(fn [tree path x] | |
(if (p x) | |
(assoc tree path x) | |
tree)) | |
(empty (:tree fileset)) | |
(:tree fileset)))] | |
(handler fileset))))) | |
(defn package-part [{:keys [extern-name namespace project dependencies requires]}] | |
(with-files (fn [x] | |
(or (= extern-name (.getName (tmp-file x))) | |
(re-find #"^draft.*/build/" (tmp-path x)))) | |
(comp | |
(sift :move {(re-pattern (format "^draft.*/build/%s.js$" (name project))) (format "cljsjs/%1$s/development/%1$s.inc.js" (name project)) | |
(re-pattern (format "^draft.*/build/%s.min.js$" (name project))) (format "cljsjs/%1$s/production/%1$s.min.inc.js" (name project))}) | |
(sift :include #{#"^cljsjs"}) | |
(deps-cljs :name namespace :requires requires) | |
(pom :project project :dependencies (or dependencies [])) | |
(show :fileset true) | |
(jar)))) | |
(deftask package-draft [] | |
(package-part | |
{:extern-name "draft.ext.js" | |
:namespace "cljsjs.draft" | |
:project 'cljsjs/draft})) | |
(deftask package [] | |
(comp | |
(download :url (format "https://github.com/facebook/draft-js/archive/master.zip" +lib-version+) | |
:checksum +checksum+ | |
:unzip true) | |
(package-draft) | |
)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment