diff options
author | Eduardo Julian | 2022-04-07 14:57:35 -0400 |
---|---|---|
committer | Eduardo Julian | 2022-04-07 14:57:35 -0400 |
commit | c85697eee8ce3dac5480a3ba2b31cc4943e1d8e6 (patch) | |
tree | 50db3f6547b0ad765e6b47e65546f30ad8861c0b /stdlib/source/program/aedifex/command/deploy | |
parent | 9224e54bf175ebe13c3fae42f04b649413c737e7 (diff) |
Better snapshot deployments for Aedifex.
Diffstat (limited to 'stdlib/source/program/aedifex/command/deploy')
-rw-r--r-- | stdlib/source/program/aedifex/command/deploy/snapshot.lux | 61 |
1 files changed, 61 insertions, 0 deletions
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 []))) |