[#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
|
(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"
|
||||||
|
|
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