(.module: [lux #* [abstract [monad (#+ do)]] [control [concurrency ["." promise (#+ Promise)]]] [data [collection ["." set (#+ Set)]]] [world ["." file] ["." console (#+ Console)]]] ["." // #_ ["#." clean] ["/#" // #_ [command (#+ Command)] [artifact (#+ Artifact)] [repository (#+ Repository)] ["#" profile] ["#." action (#+ Action)] ["#." cache] ["#." dependency #_ ["#/." resolution (#+ Resolution)]]]]) (def: #export (do! console fs repositories profile) (-> (Console Promise) (file.System Promise) (List (Repository Promise)) (Command Resolution)) (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) _ (console.write-line //clean.success console)] (wrap resolution)))