(.module: [lux #* [abstract [monad (#+ do)]] [control [concurrency ["." promise (#+ Promise)]]] [data [collection ["." set (#+ Set)]]] [world ["." file]]] ["." /// #_ [command (#+ Command)] [artifact (#+ Artifact)] [repository (#+ Repository)] ["#" profile] ["#." action (#+ Action)] ["#." cache] ["#." dependency #_ ["#/." resolution]]]) (def: #export (do! fs repositories profile) (-> (file.System Promise) (List (Repository Promise)) (Command (Set Artifact))) (do ///action.monad [#let [dependencies (set.to-list (get@ #///.dependencies profile))] cache (///cache.read-all fs dependencies ///dependency/resolution.empty) resolution (///dependency/resolution.all repositories dependencies cache) cached (///cache.write-all fs resolution) #let [_ (log! "Successfully resolved dependencies!")]] (wrap cached)))