diff --git a/cloxp-installer.jar b/cloxp-installer.jar index 7b14a9c..e239174 100644 Binary files a/cloxp-installer.jar and b/cloxp-installer.jar differ diff --git a/make-release.sh b/make-release.sh index 90f5e36..9ac302e 100755 --- a/make-release.sh +++ b/make-release.sh @@ -1,6 +1,6 @@ #! /bin/bash -release="pre-0.0.8"; +release="0.2.0"; lein do clean, uberjar; cp target/cloxp-installer-0.1.0-standalone.jar cloxp-installer.jar; diff --git a/project.clj b/project.clj index 1b44af2..fd607d2 100644 --- a/project.clj +++ b/project.clj @@ -3,7 +3,7 @@ :license {:name "MIT License" :url "http://opensource.org/licenses/MIT"} :url "http://github.com/cloxp/cloxp-installer" - :dependencies [[org.clojure/clojure "1.6.0"]] + :dependencies [[org.clojure/clojure "1.7.0"]] :scm {:url "git@github.com:cloxp/cloxp-installer.git"} :pom-addition [:developers [:developer [:name "Robert Krahn"] diff --git a/src/rksm/cloxp_installer/main.clj b/src/rksm/cloxp_installer/main.clj index 78bdd61..e96bf8e 100644 --- a/src/rksm/cloxp_installer/main.clj +++ b/src/rksm/cloxp_installer/main.clj @@ -98,11 +98,20 @@ (apply shell/sh (split command-string #" "))) (apply shell/sh (split command-string #" ")))) +(defn match-version + [version-string] + (if-let [[parsed major minor patch] (re-find #"([0-9]+)\.([0-9]+)\.([0-9]+)" version-string)] + {:major (read-string major) + :minor (read-string minor) + :patch (read-string patch)})) + (defn assert-bin - [name command] + [name command & [version-check required-version]] (let [{:keys [exit out err]} (cmd command)] - (if-not (zero? exit) - (install-error name " does not seem to be installed")))) + (when-not (zero? exit) + (install-error name " does not seem to be installed")) + (when (and version-check (not (version-check out))) + (install-error name " does not seem to be installed in the required version " required-version)))) (defn assert-command-succeeds ([command] @@ -128,7 +137,7 @@ [_] (println "1. Checking dependencies...") (assert-bin "Leiningen" "lein --version") - (assert-bin "node.js" "node --version") + (assert-bin "node.js" "node --version" (fn [v] (let [{:keys [major]} (match-version v)] (= 4 major))) "v4.x") (assert-bin "npm" "npm --version") (assert-bin "git" "git --version"))