[#2272] Use clojure.edn/read-string to read profiles files

Using clojure.edn/read-string results in nil instead of an exception

    user=> (edn/read-string "")
    nil
    user=> (read-string "")
    RuntimeException EOF while reading  clojure.lang.Util.runtimeException (Util.java:221)
This commit is contained in:
Iván Perdomo 2017-05-09 05:58:06 +02:00
parent 9b2792d249
commit ae9ae4825d
No known key found for this signature in database
GPG key ID: 8C915DFD250CF3EA
4 changed files with 18 additions and 2 deletions

View file

@ -1,6 +1,7 @@
(ns leiningen.core.utils (ns leiningen.core.utils
(:require [clojure.java.io :as io] (: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) (:import (com.hypirion.io RevivableInputStream)
(clojure.lang LineNumberingPushbackReader) (clojure.lang LineNumberingPushbackReader)
(java.io ByteArrayOutputStream PrintStream File FileDescriptor (java.io ByteArrayOutputStream PrintStream File FileDescriptor
@ -40,7 +41,7 @@
"Returns the first Clojure form in a file if it exists." "Returns the first Clojure form in a file if it exists."
[file] [file]
(if (.exists file) (if (.exists file)
(try (read-string (slurp file)) (try (edn/read-string (slurp file))
(catch Exception e (catch Exception e
(binding [*out* *err*] ;; TODO: use main/warn for this in 3.0 (binding [*out* *err*] ;; TODO: use main/warn for this in 3.0
(println "Error reading" (println "Error reading"

View file

@ -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))))

View file

@ -0,0 +1 @@
{:user {:plugins [[lein-pprint "1.1.1"]]}}