From db3e864ae66da7f7d1034ae95967605144d5ec47 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 27 Jun 2021 20:09:48 -0400 Subject: Made obtaining env variables more granular + partial Lua support. --- stdlib/source/program/aedifex/pom.lux | 37 ++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'stdlib/source/program/aedifex/pom.lux') diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux index f105f07b6..0d468d5f2 100644 --- a/stdlib/source/program/aedifex/pom.lux +++ b/stdlib/source/program/aedifex/pom.lux @@ -30,6 +30,9 @@ (def: project_tag "project") (def: dependencies_tag "dependencies") +(def: repositories_tag "repositories") +(def: repository_tag "repository") +(def: url_tag "url") (def: group_tag "groupId") (def: artifact_tag "artifactId") (def: version_tag "version") @@ -63,15 +66,15 @@ (def: (license [name url distribution]) (-> /.License XML) (|> (list (..property "name" name) - (..property "url" url) + (..property ..url_tag url) (..distribution distribution)) (#_.Node ["" "license"] _.attributes))) (def: repository (-> Address XML) - (|>> (..property "url") + (|>> (..property ..url_tag) list - (#_.Node ["" "repository"] _.attributes))) + (#_.Node ["" ..repository_tag] _.attributes))) (def: (dependency value) (-> Dependency XML) @@ -87,14 +90,14 @@ (comment (def: scm (-> /.SCM XML) - (|>> (..property "url") + (|>> (..property ..url_tag) list (#_.Node ["" "scm"] _.attributes))) (def: (organization [name url]) (-> /.Organization XML) (|> (list (..property "name" name) - (..property "url" url)) + (..property ..url_tag url)) (#_.Node ["" "organization"] _.attributes))) (def: (developer_organization [name url]) @@ -120,7 +123,7 @@ (def: (info value) (-> /.Info (List XML)) ($_ list\compose - (|> value (get@ #/.url) (maybe\map (..property "url")) maybe.to_list) + (|> value (get@ #/.url) (maybe\map (..property ..url_tag)) maybe.to_list) (|> value (get@ #/.description) (maybe\map (..property "description")) maybe.to_list) (|> value (get@ #/.licenses) (list\map ..license) (..group "licenses") list) (|> value (get@ #/.scm) (maybe\map ..scm) maybe.to_list) @@ -178,6 +181,21 @@ [_ (.node ["" ..dependencies_tag])] (.children (<>.some (..parse_dependency own_version parent_version))))) +(def: parse_repository + (Parser Address) + (do {! <>.monad} + [_ (.node ["" ..repository_tag])] + (.children + (do ! + [_ (.node ["" ..url_tag])] + (.children .text))))) + +(def: parse_repositories + (Parser (List Address)) + (do {! <>.monad} + [_ (.node ["" ..repositories_tag])] + (.children (<>.some ..parse_repository)))) + (def: own_version (Parser Text) (do <>.monad @@ -201,7 +219,12 @@ [dependencies (|> (..parse_dependencies own_version parent_version) .somewhere (<>.default (list))) + repositories (|> ..parse_repositories + .somewhere + (<>.default (list))) _ (<>.some .ignore)] (wrap (|> (\ /.monoid identity) (update@ #/.dependencies (function (_ empty) - (list\fold set.add empty dependencies))))))))) + (list\fold set.add empty dependencies))) + (update@ #/.repositories (function (_ empty) + (list\fold set.add empty repositories))))))))) -- cgit v1.2.3