aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/command/deps.lux
diff options
context:
space:
mode:
authorEduardo Julian2020-12-29 23:29:54 -0400
committerEduardo Julian2020-12-29 23:29:54 -0400
commit02d27daeacac74785c2b0f4d1ce03d432377a36e (patch)
tree5129c496d136deb57880f202153e96f4f585e355 /stdlib/source/program/aedifex/command/deps.lux
parent832a9361b632331e82a64c07baa560487ca8abde (diff)
Unified repository abstraction for Aedifex.
Diffstat (limited to 'stdlib/source/program/aedifex/command/deps.lux')
-rw-r--r--stdlib/source/program/aedifex/command/deps.lux20
1 files changed, 12 insertions, 8 deletions
diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux
index 315c6375c..71dffeec1 100644
--- a/stdlib/source/program/aedifex/command/deps.lux
+++ b/stdlib/source/program/aedifex/command/deps.lux
@@ -7,7 +7,9 @@
["." promise (#+ Promise)]]]
[data
[collection
- ["." set (#+ Set)]]]
+ ["." set (#+ Set)]
+ ["." list ("#\." fold)]
+ ["." dictionary]]]
[world
[program (#+ Program)]
["." file]
@@ -20,16 +22,18 @@
[repository (#+ Repository)]
["#" profile]
["#." action (#+ Action)]
- ["#." cache]
["#." dependency #_
- ["#/." resolution (#+ Resolution)]]]])
+ ["#/." resolution (#+ Resolution)]
+ ["#/." deployment]]]])
-(def: #export (do! program console fs repositories profile)
- (-> (Program Promise) (Console Promise) (file.System Promise) (List (Repository Promise)) (Command Resolution))
+(def: #export (do! console local remotes profile)
+ (-> (Console Promise) (Repository Promise) (List (Repository Promise)) (Command Resolution))
(do ///action.monad
[#let [dependencies (set.to_list (get@ #///.dependencies profile))]
- cache (///cache.read_all program fs dependencies ///dependency/resolution.empty)
- resolution (///dependency/resolution.all repositories dependencies cache)
- cached (///cache.write_all program fs resolution)
+ cache (///dependency/resolution.all (list local) dependencies ///dependency/resolution.empty)
+ resolution (///dependency/resolution.all remotes dependencies cache)
+ cached (|> (dictionary.keys cache)
+ (list\fold dictionary.remove resolution)
+ (///dependency/deployment.all local))
_ (console.write_line //clean.success console)]
(wrap resolution)))