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. --- .../program/aedifex/command/deploy/snapshot.lux | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 stdlib/source/program/aedifex/command/deploy/snapshot.lux (limited to 'stdlib/source/program/aedifex/command/deploy/snapshot.lux') diff --git a/stdlib/source/program/aedifex/command/deploy/snapshot.lux b/stdlib/source/program/aedifex/command/deploy/snapshot.lux new file mode 100644 index 000000000..9770965d9 --- /dev/null +++ b/stdlib/source/program/aedifex/command/deploy/snapshot.lux @@ -0,0 +1,61 @@ +(.using + [library + [lux "*" + [abstract + [monad {"+" do}]] + [control + [concurrency + ["[0]" async {"+" Async}]]] + [data + [text + [encoding + ["[0]" utf8]]] + [collection + ["[0]" set]] + [format + ["[0]" binary] + ["[0]" tar] + ["[0]" xml]]] + [tool + [compiler + [meta + ["[0]" export]]]] + [world + [console {"+" Console}] + ["[0]" file]]]] + ["[0]" //// "_" + [command {"+" Command}] + ["/" profile] + ["[1][0]" action] + ["[1][0]" pom] + ["[1][0]" package] + ["[1][0]" dependency "_" + ["[1]/[0]" deployment] + ["[1]/[0]" status]] + ["[1][0]" repository {"+" Repository} + ["[1]/[0]" origin]] + ["[1][0]" artifact {"+" Artifact} + ["[1]/[0]" type]]]) + +(def: .public (do! console remote fs artifact profile) + (-> (Console 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 + remote + [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)]]))] + (in []))) -- cgit v1.2.3