From c85697eee8ce3dac5480a3ba2b31cc4943e1d8e6 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 7 Apr 2022 14:57:35 -0400 Subject: Better snapshot deployments for Aedifex. --- stdlib/source/program/aedifex/command/deploy.lux | 77 +++++------------------- 1 file changed, 14 insertions(+), 63 deletions(-) (limited to 'stdlib/source/program/aedifex/command/deploy.lux') diff --git a/stdlib/source/program/aedifex/command/deploy.lux b/stdlib/source/program/aedifex/command/deploy.lux index 6fcd84e21..4ff3b9011 100644 --- a/stdlib/source/program/aedifex/command/deploy.lux +++ b/stdlib/source/program/aedifex/command/deploy.lux @@ -4,78 +4,29 @@ [abstract [monad {"+" do}]] [control - ["[0]" try {"+" Try}] + [try {"+" Try}] [concurrency - ["[0]" async {"+" Async} ("[1]#[0]" monad)]] - ["<>" parser - ["<[0]>" xml]]] - [data - [binary {"+" Binary}] - [text - ["%" format {"+" format}] - [encoding - ["[0]" utf8]]] - [collection - ["[0]" set]] - [format - ["[0]" binary] - ["[0]" tar] - ["[0]" xml]]] - [time - ["[0]" instant {"+" Instant}]] - [tool - [compiler - [meta - ["[0]" export]]]] + [async {"+" Async}]]] [world ["[0]" file] ["[0]" console {"+" Console}]]]] - ["[0]" // "_" - ["[1][0]" clean] + ["[0]" / "_" + ["[1][0]" snapshot] ["/[1]" // "_" - [command {"+" Command}] - ["/" profile] - ["[1][0]" action {"+" Action}] - ["[1][0]" pom] - ["[1][0]" hash] - ["[1][0]" package] - ["[1][0]" dependency - ["[1]/[0]" deployment] - ["[1]/[0]" status {"+" Status}]] - ["[1][0]" repository {"+" Repository} - [identity {"+" Identity}] - ["[1]/[0]" remote] - ["[1]/[0]" origin]] - ["[1][0]" metadata - ["[1]/[0]" artifact] - ["[1]/[0]" snapshot]] - ["[1][0]" artifact {"+" Artifact} - ["[1]/[0]" extension {"+" Extension}] - ["[1]/[0]" type]]]]) + ["[1][0]" install] + ["/[1]" // "_" + [command {"+" Command}] + [repository {"+" Repository}] + [artifact {"+" Artifact}] + ["[1][0]" action]]]]) (def: .public success "Successfully deployed the project.") -(def: .public (do! console repository fs artifact profile) - (-> (Console Async) (Repository Async) (file.System Async) Artifact (Command Any)) +(def: .public (do! console local remote fs artifact profile) + (-> (Console Async) (Repository Async) (Repository Async) (file.System Async) Artifact (Command Any)) (do [! ///action.monad] - [library (|> profile - (the /.#sources) - set.list - (export.library fs) - (# ! each (binary.result tar.writer))) - pom (# async.monad in (///pom.write profile)) - _ (///dependency/deployment.one - repository - [artifact ///artifact/type.lux_library] - (let [pom_data (|> pom - (# xml.codec encoded) - (# utf8.codec encoded))] - [///package.#origin {///repository/origin.#Remote ""} - ///package.#library [library - (///dependency/status.verified library)] - ///package.#pom [pom - pom_data - (///dependency/status.verified pom_data)]]))] + [_ (//install.do! console fs local profile) + _ (/snapshot.do! console remote fs artifact profile)] (is (Async (Try Any)) (console.write_line ..success console)))) -- cgit v1.2.3