diff options
Diffstat (limited to 'stdlib/source/program/aedifex')
-rw-r--r-- | stdlib/source/program/aedifex/cache.lux | 6 | ||||
-rw-r--r-- | stdlib/source/program/aedifex/dependency/resolution.lux | 7 | ||||
-rw-r--r-- | stdlib/source/program/aedifex/package.lux | 42 | ||||
-rw-r--r-- | stdlib/source/program/aedifex/repository/origin.lux | 21 |
4 files changed, 45 insertions, 31 deletions
diff --git a/stdlib/source/program/aedifex/cache.lux b/stdlib/source/program/aedifex/cache.lux index d36bb8dff..a7f6439df 100644 --- a/stdlib/source/program/aedifex/cache.lux +++ b/stdlib/source/program/aedifex/cache.lux @@ -33,7 +33,9 @@ ["#/." extension (#+ Extension)]] ["#." dependency (#+ Dependency) [resolution (#+ Resolution)] - ["#/." status (#+ Status)]]]) + ["#/." status (#+ Status)]] + ["#." repository #_ + ["#/." origin]]]) (def: (write! system content file) (-> (file.System Promise) Binary Path (Promise (Try Any))) @@ -130,7 +132,7 @@ [pom (..decode xml.codec pom) library_sha-1 (..decode //hash.sha-1_codec library_sha-1) library_md5 (..decode //hash.md5_codec library_md5)] - (wrap {#//package.origin #//package.Local + (wrap {#//package.origin (#//repository/origin.Local prefix) #//package.library [library (#//dependency/status.Verified library_sha-1 library_md5)] #//package.pom [pom #//dependency/status.Unverified]})))))) diff --git a/stdlib/source/program/aedifex/dependency/resolution.lux b/stdlib/source/program/aedifex/dependency/resolution.lux index 11c3cd057..e9d457ac9 100644 --- a/stdlib/source/program/aedifex/dependency/resolution.lux +++ b/stdlib/source/program/aedifex/dependency/resolution.lux @@ -34,12 +34,13 @@ ["#." status (#+ Status)] ["/#" // #_ ["/" profile] - ["#." repository (#+ Address Repository)] ["#." hash (#+ Hash SHA-1 MD5)] ["#." pom] ["#." package (#+ Package)] ["#." artifact (#+ Artifact) - ["#/." extension (#+ Extension)]]]]) + ["#/." extension (#+ Extension)]] + ["#." repository (#+ Address Repository) + ["#/." origin (#+ Origin)]]]]) (template [<name>] [(exception: #export (<name> {artifact Artifact} {extension Extension} {hash Text}) @@ -92,7 +93,7 @@ [pom (\ encoding.utf8 decode pom) pom (\ xml.codec decode pom) profile (<xml>.run ///pom.parser pom)] - (wrap {#///package.origin #///package.Remote + (wrap {#///package.origin (#///repository/origin.Remote "") #///package.library library_&_status #///package.pom [pom pom_status]})))))) diff --git a/stdlib/source/program/aedifex/package.lux b/stdlib/source/program/aedifex/package.lux index b3118a7e0..f6ba87078 100644 --- a/stdlib/source/program/aedifex/package.lux +++ b/stdlib/source/program/aedifex/package.lux @@ -15,28 +15,13 @@ [collection [set (#+ Set)]]]] ["." // #_ - [dependency (#+ Dependency) - ["#." status (#+ Status)]] ["/" profile] ["#." hash (#+ Hash SHA-1 MD5)] - ["#." pom]]) - -(type: #export Origin - #Local - #Remote) - -(structure: any_equivalence - (Equivalence Any) - - (def: (= _ _) - true)) - -(def: origin_equivalence - (Equivalence Origin) - ($_ sum.equivalence - ..any_equivalence - ..any_equivalence - )) + ["#." pom] + [dependency (#+ Dependency) + ["#." status (#+ Status)]] + [repository + ["#." origin (#+ Origin)]]]) (type: #export Package {#origin Origin @@ -44,17 +29,22 @@ #pom [XML Status]}) (template [<name> <tag>] - [(def: #export <name> + [(def: #export (<name> package) (-> Package Bit) - (|>> (get@ #origin) (\ ..origin_equivalence = <tag>)))] + (case (get@ #origin package) + (<tag> _) + true + + _ + false))] - [local? #Local] - [remote? #Remote] + [local? #//origin.Local] + [remote? #//origin.Remote] ) (def: #export (local pom library) (-> XML Binary Package) - {#origin #Local + {#origin (#//origin.Local "") #library [library #//status.Unverified] #pom [pom #//status.Unverified]}) @@ -68,7 +58,7 @@ (def: #export equivalence (Equivalence Package) ($_ product.equivalence - ..origin_equivalence + //origin.equivalence (product.equivalence binary.equivalence //status.equivalence) (product.equivalence xml.equivalence //status.equivalence) )) diff --git a/stdlib/source/program/aedifex/repository/origin.lux b/stdlib/source/program/aedifex/repository/origin.lux new file mode 100644 index 000000000..ca97a8cff --- /dev/null +++ b/stdlib/source/program/aedifex/repository/origin.lux @@ -0,0 +1,21 @@ +(.module: + [lux #* + [abstract + [equivalence (#+ Equivalence)]] + [data + ["." sum] + ["." text]] + [world + [file (#+ Path)] + [net (#+ URL)]]]) + +(type: #export Origin + (#Local Path) + (#Remote URL)) + +(def: #export equivalence + (Equivalence Origin) + ($_ sum.equivalence + text.equivalence + text.equivalence + )) |