aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/dependency/deployment.lux
diff options
context:
space:
mode:
authorEduardo Julian2021-02-07 04:56:58 -0400
committerEduardo Julian2021-02-07 04:56:58 -0400
commitd99c47989a1047cd24019fd5ce434e701b5d3519 (patch)
tree19bfb0f5e4713e5dcd0c71bbd7b88d09d75dfe5d /stdlib/source/program/aedifex/dependency/deployment.lux
parent571d816dfd0b056a1649f5057867abbfa4421f5d (diff)
Mo' updates, less problems.
Diffstat (limited to 'stdlib/source/program/aedifex/dependency/deployment.lux')
-rw-r--r--stdlib/source/program/aedifex/dependency/deployment.lux51
1 files changed, 35 insertions, 16 deletions
diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux
index 1f3e776a9..04b82d7e2 100644
--- a/stdlib/source/program/aedifex/dependency/deployment.lux
+++ b/stdlib/source/program/aedifex/dependency/deployment.lux
@@ -32,7 +32,11 @@
["#." package (#+ Package)]
["#." artifact (#+ Artifact)
["#/." type]
- ["#/." extension (#+ Extension)]]
+ ["#/." extension (#+ Extension)]
+ ["#/." versioning]
+ ["#/." snapshot
+ ["#/." version (#+ Version)
+ ["#/." value]]]]
["#." metadata
["#/." artifact]
["#/." snapshot]]
@@ -42,9 +46,9 @@
["#." repository (#+ Repository)
["#/." origin]]])
-(def: (with_status repository [artifact type] [data status])
- (-> (Repository Promise) Dependency [Binary Status] (Promise (Try Any)))
- (let [artifact (format (///artifact.uri artifact)
+(def: (with_status repository version_template [artifact type] [data status])
+ (-> (Repository Promise) ///artifact.Version Dependency [Binary Status] (Promise (Try Any)))
+ (let [artifact (format (///artifact.uri version_template artifact)
(///artifact/extension.extension type))
deploy_hash (: (All [h] (-> (Codec Text (Hash h)) Extension (Hash h) (Promise (Try Any))))
(function (_ codec extension hash)
@@ -91,29 +95,44 @@
(def: #export (one repository [artifact type] package)
(-> (Repository Promise) Dependency Package (Promise (Try Artifact)))
(do {! promise.monad}
- [now (promise.future instant.now)]
+ [now (promise.future instant.now)
+ #let [version_template (get@ #///artifact.version artifact)]]
(do (try.with !)
- [_ (with_status repository [artifact type] (get@ #///package.library package))
+ [_ (with_status repository version_template [artifact type] (get@ #///package.library package))
- _ (let [[pom status] (get@ #///package.pom package)]
+ _ (let [[pom pom_data status] (get@ #///package.pom package)]
(with_status repository
+ version_template
[artifact ///artifact/type.pom]
- [(|> pom (\ xml.codec encode) (\ encoding.utf8 encode))
+ [pom_data
status]))
snapshot (///metadata/snapshot.read repository artifact)
+ #let [snapshot (|> snapshot
+ (update@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot]
+ (function (_ snapshot)
+ (case snapshot
+ #///artifact/snapshot.Local
+ #///artifact/snapshot.Local
+
+ (#///artifact/snapshot.Remote [_ build])
+ (#///artifact/snapshot.Remote [now (inc build)]))))
+ (set@ [#///metadata/snapshot.versioning #///artifact/versioning.last_updated] now))
+ versioning_snapshot (get@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot] snapshot)]
_ (|> snapshot
- (set@ [#///metadata/snapshot.versioning #///metadata/snapshot.time_stamp] now)
- (update@ [#///metadata/snapshot.versioning #///metadata/snapshot.build] inc)
- (set@ [#///metadata/snapshot.versioning #///metadata/snapshot.snapshot]
- (list\compose (..artifacts type (product.right (get@ #///package.library package)))
- (..artifacts ///artifact/type.pom (product.right (get@ #///package.pom package)))))
+ (set@ [#///metadata/snapshot.versioning #///artifact/versioning.versions]
+ (list {#///artifact/snapshot/version.extension type
+ #///artifact/snapshot/version.value (///artifact/snapshot/version/value.format
+ {#///artifact/snapshot/version/value.version version_template
+ #///artifact/snapshot/version/value.snapshot versioning_snapshot})
+ #///artifact/snapshot/version.updated now}))
+ ## (set@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot]
+ ## (list\compose (..artifacts type (product.right (get@ #///package.library package)))
+ ## (..artifacts ///artifact/type.pom (product.right (get@ #///package.pom package)))))
(///metadata/snapshot.write repository artifact))
-
project (///metadata/artifact.read repository artifact)
- #let [version (get@ #///artifact.version artifact)]
_ (|> project
- (set@ #///metadata/artifact.versions (list version))
+ (set@ #///metadata/artifact.versions (list version_template))
(set@ #///metadata/artifact.last_updated now)
(///metadata/artifact.write repository artifact))]
(wrap artifact))))