From 0205e5146b50ab066d152fccda0fc8cef4eef852 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 3 Dec 2020 02:09:57 -0400 Subject: Detect duplicate files coming from dependencies. --- stdlib/source/test/aedifex/command/deps.lux | 53 +++++++++++++++++------------ 1 file changed, 32 insertions(+), 21 deletions(-) (limited to 'stdlib/source/test/aedifex/command/deps.lux') diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux index 2f221a7ce..5b9dd87da 100644 --- a/stdlib/source/test/aedifex/command/deps.lux +++ b/stdlib/source/test/aedifex/command/deps.lux @@ -7,9 +7,11 @@ [control ["." try] [concurrency - ["." promise]]] + ["." promise]] + [security + ["!" capability]]] [data - [text + ["." text ("#\." equivalence) ["%" format (#+ format)]] [collection ["." dictionary] @@ -18,24 +20,28 @@ ["." random (#+ Random)]] [world ["." file]]] - ["$." /// #_ - ["#." package] - ["#." artifact] - ["#." dependency #_ - ["#/." resolution]]] + ["." // #_ + ["@." version] + ["$/#" // #_ + ["#." package] + ["#." artifact] + ["#." dependency #_ + ["#/." resolution]]]] {#program ["." / - ["//#" /// #_ - ["#" profile] - ["#." action] - ["#." pom] - ["#." package] - ["#." cache] - ["#." repository] - ["#." artifact - ["#/." type]] - ["#." dependency - ["#/." resolution]]]]}) + ["/#" // #_ + ["#." clean] + ["/#" // #_ + ["#" profile] + ["#." action] + ["#." pom] + ["#." package] + ["#." cache] + ["#." repository] + ["#." artifact + ["#/." type]] + ["#." dependency + ["#/." resolution]]]]]}) (def: #export test Test @@ -74,13 +80,18 @@ fs (file.mock (\ file.default separator))]] (wrap (do promise.monad [verdict (do ///action.monad - [pre (|> ///dependency/resolution.empty + [#let [console (@version.echo "")] + pre (|> ///dependency/resolution.empty (dictionary.put dependee dependee-package) (///cache.write-all fs)) post (|> (\ ///.monoid identity) (set@ #///.dependencies (set.from-list ///dependency.hash (list dependee depender))) - (/.do! fs (list (///repository.mock ($///dependency/resolution.single depender-artifact depender-package) []))))] - (wrap (and (and (set.member? pre dependee-artifact) + (/.do! console fs (list (///repository.mock ($///dependency/resolution.single depender-artifact depender-package) [])))) + logging! (\ ///action.monad map + (text\= //clean.success) + (!.use (\ console read-line) []))] + (wrap (and logging! + (and (set.member? pre dependee-artifact) (not (set.member? pre depender-artifact))) (and (dictionary.key? post dependee) (dictionary.key? post depender)))))] -- cgit v1.2.3