diff --git a/leiningen-core/src/leiningen/core/utils.clj b/leiningen-core/src/leiningen/core/utils.clj index 17d97cf1..4514ae79 100644 --- a/leiningen-core/src/leiningen/core/utils.clj +++ b/leiningen-core/src/leiningen/core/utils.clj @@ -1,6 +1,7 @@ (ns leiningen.core.utils (:require [clojure.java.io :as io] - [clojure.java.shell :as sh]) + [clojure.java.shell :as sh] + [clojure.edn :as edn]) (:import (com.hypirion.io RevivableInputStream) (clojure.lang LineNumberingPushbackReader) (java.io ByteArrayOutputStream PrintStream File FileDescriptor @@ -40,7 +41,7 @@ "Returns the first Clojure form in a file if it exists." [file] (if (.exists file) - (try (read-string (slurp file)) + (try (edn/read-string (slurp file)) (catch Exception e (binding [*out* *err*] ;; TODO: use main/warn for this in 3.0 (println "Error reading" diff --git a/leiningen-core/test/leiningen/core/test/utils.clj b/leiningen-core/test/leiningen/core/test/utils.clj new file mode 100644 index 00000000..cd3d2cf3 --- /dev/null +++ b/leiningen-core/test/leiningen/core/test/utils.clj @@ -0,0 +1,14 @@ +(ns leiningen.core.test.utils + (:require [leiningen.core.utils :as utils] + [clojure.test :refer [deftest testing is]] + [clojure.java.io :as io])) + +(def profiles "./leiningen-core/test/resources/") + +(def sample-profile {:user {:plugins '[[lein-pprint "1.1.1"]]}}) + +(deftest read-profiles + (testing "Empty profile file" + (is (nil? (utils/read-file (io/file (str profiles "profiles-empty.clj")))))) + (testing "Non-empty profile file" + (is (= (utils/read-file (io/file (str profiles "profiles.clj"))) sample-profile)))) diff --git a/leiningen-core/test/resources/profiles-empty.clj b/leiningen-core/test/resources/profiles-empty.clj new file mode 100644 index 00000000..e69de29b diff --git a/leiningen-core/test/resources/profiles.clj b/leiningen-core/test/resources/profiles.clj new file mode 100644 index 00000000..faf2b339 --- /dev/null +++ b/leiningen-core/test/resources/profiles.clj @@ -0,0 +1 @@ +{:user {:plugins [[lein-pprint "1.1.1"]]}}