|
5 | 5 | [k16.kmono.cli.common.context :as common.context] |
6 | 6 | [k16.kmono.cli.common.opts :as opts] |
7 | 7 | [k16.kmono.core.deps :as core.deps] |
| 8 | + [k16.kmono.core.graph :as core.graph] |
| 9 | + [k16.kmono.core.packages :as core.packages] |
8 | 10 | [k16.kmono.cp :as kmono.cp] |
9 | | - [k16.kmono.log :as log])) |
| 11 | + [k16.kmono.log :as log] |
| 12 | + [k16.kmono.version :as kmono.version])) |
10 | 13 |
|
11 | 14 | (set! *warn-on-reflection* true) |
12 | 15 |
|
13 | | -(defn run-clojure [{:keys [A M T X] :as props} args] |
| 16 | +(defn run-clojure [{:keys [filter skip-unchanged changed changed-since |
| 17 | + A M T X] :as props} args] |
14 | 18 | (let [aliases (or A M T X) |
15 | 19 | props (assoc props :aliases aliases) |
16 | 20 | {:keys [root config packages]} (common.context/load-context props) |
17 | 21 |
|
| 22 | + packages |
| 23 | + (cond-> packages |
| 24 | + filter |
| 25 | + (->> (core.graph/filter-by (core.packages/name-matches? filter))) |
| 26 | + |
| 27 | + (or changed skip-unchanged) |
| 28 | + (->> (kmono.version/resolve-package-versions root) |
| 29 | + (kmono.version/resolve-package-changes root) |
| 30 | + (core.graph/filter-by kmono.version/package-changed? |
| 31 | + {:include-dependents true})) |
| 32 | + |
| 33 | + changed-since |
| 34 | + (->> (kmono.version/resolve-package-changes-since root changed-since) |
| 35 | + (core.graph/filter-by kmono.version/package-changed? |
| 36 | + {:include-dependents true}))) |
| 37 | + |
18 | 38 | mode (cond |
19 | 39 | A "A" |
20 | 40 | M "M" |
|
61 | 81 |
|
62 | 82 | :options {:package-aliases opts/package-aliases-opt |
63 | 83 |
|
| 84 | + :skip-unchanged opts/skip-unchanged-opt |
| 85 | + :changed opts/changed-opt |
| 86 | + :changed-since opts/changed-since-opt |
| 87 | + :filter opts/package-filter-opt |
| 88 | + |
64 | 89 | :A {:desc "Aliases" |
65 | 90 | :parse-fn opts/parse-bool-or-aliases} |
66 | 91 | :M {:desc "Main aliases" |
|
0 commit comments