[#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:
parent
9b2792d249
commit
ae9ae4825d
4 changed files with 18 additions and 2 deletions
|
@ -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"
|
||||
|
|
14
leiningen-core/test/leiningen/core/test/utils.clj
Normal file
14
leiningen-core/test/leiningen/core/test/utils.clj
Normal 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))))
|
0
leiningen-core/test/resources/profiles-empty.clj
Normal file
0
leiningen-core/test/resources/profiles-empty.clj
Normal file
1
leiningen-core/test/resources/profiles.clj
Normal file
1
leiningen-core/test/resources/profiles.clj
Normal file
|
@ -0,0 +1 @@
|
|||
{:user {:plugins [[lein-pprint "1.1.1"]]}}
|
Loading…
Reference in a new issue