Skip to content

Commit

Permalink
feat: Add --download flag to download upgraded deps on the fly
Browse files Browse the repository at this point in the history
cf. #132
  • Loading branch information
liquidz committed Jan 20, 2022
1 parent 18be6bf commit 19a06e3
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 23 deletions.
5 changes: 3 additions & 2 deletions src/antq/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@
["-d" "--directory=DIRECTORY" :default ["."] :assoc-fn concat-assoc-fn]
[nil "--upgrade"]
[nil "--verbose"]
[nil "--force"]])
[nil "--force"]
[nil "--download"]])

(defn skip-artifacts?
[dep options]
Expand Down Expand Up @@ -254,7 +255,7 @@
(let [outdated (antq options deps)]
(cond-> outdated
(:upgrade options)
(upgrade/upgrade! (or (:force options) false))
(upgrade/upgrade! options)

true
(exit)))
Expand Down
39 changes: 22 additions & 17 deletions src/antq/upgrade.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
(ns antq.upgrade
(:require
[antq.download :as download]
[antq.log :as log]))

(defmulti upgrader
Expand Down Expand Up @@ -37,24 +38,28 @@

(defn upgrade!
"Return only non-upgraded deps"
[deps force?]
(let [version-checked-deps (filter :latest-version deps)]
[deps options]
(let [force? (or (:force options) false)
download? (or (:download options) false)
version-checked-deps (filter :latest-version deps)]
(when (and (seq version-checked-deps)
(not force?))
(log/info ""))

(doall
(remove
(fn [dep]
(if (confirm dep force?)
(if-let [upgraded-content (upgrader dep)]
(do (log/info (format "Upgraded %s '%s' to '%s' in %s."
(:name dep)
(:version dep)
(:latest-version dep)
(:file dep)))
(spit (:file dep) upgraded-content)
true)
false)
false))
version-checked-deps))))
(let [upgrade-result (group-by
(fn [dep]
(if (confirm dep force?)
(if-let [upgraded-content (upgrader dep)]
(do (log/info (format "Upgraded %s '%s' to '%s' in %s."
(:name dep)
(:version dep)
(:latest-version dep)
(:file dep)))
(spit (:file dep) upgraded-content)
true)
false)
false))
version-checked-deps)]
(when download?
(download/download! (get upgrade-result true)))
(get upgrade-result false))))
8 changes: 4 additions & 4 deletions test/antq/upgrade_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
(t/is (every? #(= 0 (.indexOf % "before"))
(map slurp temp-files)))

(sut/upgrade! [dep1 dep2] true)
(sut/upgrade! [dep1 dep2] {:force true})

(t/is (= "afterLATEST" (slurp temp1)))
(t/is (= "before1" (slurp temp2)))))
Expand All @@ -57,7 +57,7 @@

(let [sw (java.io.StringWriter.)
err-str (binding [*err* sw]
(sut/upgrade! [dep] true)
(sut/upgrade! [dep] {:force true})
(str sw))]
(t/is (not= -1 (.indexOf err-str "Not supported"))))

Expand All @@ -73,15 +73,15 @@
(t/testing "input no"
(let [out-str (with-out-str
(with-redefs [read (constantly 'n)]
(sut/upgrade! [dep] false)))]
(sut/upgrade! [dep] {:force false})))]
(t/is (not= -1 (.indexOf out-str "Do you want to upgrade"))))

(t/is (= "before0" (slurp temp1))))

(t/testing "input yes"
(let [out-str (with-out-str
(with-redefs [read (constantly 'y)]
(sut/upgrade! [dep] false)))]
(sut/upgrade! [dep] {:force false})))]
(t/is (not= -1 (.indexOf out-str "Do you want to upgrade"))))

(t/is (= "afterLATEST" (slurp temp1))))))

0 comments on commit 19a06e3

Please sign in to comment.