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