Skip to content

Commit

Permalink
Add info logging about updated modules
Browse files Browse the repository at this point in the history
  • Loading branch information
julienvincent committed Nov 11, 2023
1 parent 3205d30 commit 9ad3c53
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 20 deletions.
45 changes: 32 additions & 13 deletions src/k16/kl/api/resolver.clj
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
(if should-resolve?
(let [{:keys [module ref]} (resolve-module partial-ref)
submodules (resolve-module-tree (assoc props :module module))]
[submodule-name {:ref ref :module module :submodules submodules}])
[submodule-name {:ref ref :module module :submodules submodules :previous-ref (:ref lock-entry)}])
[submodule-name lock-entry])))))
p/all
deref
Expand Down Expand Up @@ -102,21 +102,33 @@
(defn- tree->modules [tree]
(->> tree
(reduce
(fn [lock [module-name entry]]
(assoc lock module-name (:ref entry)))
(fn [modules [module-name entry]]
(assoc modules module-name (:ref entry)))
{})))

(defn- tree->updated-modules [tree]
(->> tree
(reduce
(fn [updates [module-name entry]]
(let [{:keys [ref previous-ref]} entry]
(if (and previous-ref
(not= (:sha ref) (:sha previous-ref)))
(assoc updates module-name entry)
updates)))
{})))

(defn- resolve-modules [props]
(let [tree (resolve-module-tree props)
tree' (flatten-modules-tree {:tree tree})]
{:lock (tree->lock tree')
:modules (tree->modules tree')}))
flattened (flatten-modules-tree {:tree tree})]
{:lock (tree->lock flattened)
:modules (tree->modules flattened)
:updated-modules (tree->updated-modules flattened)}))

(defn pull! [module-name {:keys [update-lockfile? force?]}]
(defn pull! [module-name {:keys [update-lockfile?]}]
(let [module (module.loader/read-module-file (api.fs/get-root-module-file module-name))
current-lock (api.fs/read-edn (api.fs/get-lock-file module-name))

{:keys [lock modules]}
{:keys [lock modules updated-modules]}
(resolve-modules {:module module
:lock current-lock
:force-resolve? update-lockfile?})
Expand All @@ -126,17 +138,24 @@
(when lockfile-updated?
(api.fs/write-edn (api.fs/get-lock-file module-name) lock))

(when (or lockfile-updated? force?)
(->> modules
(map (fn [[submodule-name module-ref]]
(when (seq updated-modules)
(->> updated-modules
(map (fn [[submodule-name {:keys [ref]}]]
(p/vthread
(module.downloader/download-remote-module!
{:module-name module-name
:submodule-name (name submodule-name)
:module-ref module-ref}))))
:module-ref ref}))))

p/all
deref))
deref)

(println)
(doseq [[submodule-name {:keys [ref previous-ref]}] updated-modules]
(log/info (str "Module " (name submodule-name)
" updated from "
(subs (:sha previous-ref) 0 7) " -> " (subs (:sha ref) 0 7))))
(println))

{:modules modules
:lockfile-updated? lockfile-updated?}))
9 changes: 2 additions & 7 deletions src/k16/kl/commands/modules.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@

(set! *warn-on-reflection* true)

(defn- pull! [{:keys [update force] :as props}]
(defn- pull! [{:keys [update] :as props}]
(let [module-name (prompt.config/get-module-name props)
updated? (api.resolver/pull! module-name {:update-lockfile? update
:force? force})]
updated? (api.resolver/pull! module-name {:update-lockfile? update})]
(if updated?
(log/info "Services updated")
(log/info "Services are all up to date"))))
Expand Down Expand Up @@ -38,10 +37,6 @@
:type :string}

{:option "update"
:default false
:type :with-flag}

{:option "force"
:default false
:type :with-flag}]

Expand Down

0 comments on commit 9ad3c53

Please sign in to comment.