diff options
Diffstat (limited to 'stdlib/source/program/aedifex/format.lux')
-rw-r--r-- | stdlib/source/program/aedifex/format.lux | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/stdlib/source/program/aedifex/format.lux b/stdlib/source/program/aedifex/format.lux index 9b44eced5..c7fc93b5a 100644 --- a/stdlib/source/program/aedifex/format.lux +++ b/stdlib/source/program/aedifex/format.lux @@ -7,9 +7,11 @@ ["." list ("#\." functor)] ["." set (#+ Set)]]] [macro - ["." code]]] + ["." code] + ["." template]]] ["." // #_ ["/" profile] + ["#." runtime (#+ Runtime)] ["#." project (#+ Project)] ["#." dependency (#+ Dependency)] ["#." artifact (#+ Artifact) @@ -131,21 +133,34 @@ (` [(~+ (..artifact' artifact)) (~ (code.text type))]))) +(def: (runtime [program parameters]) + (Format Runtime) + (` [(~ (code.text program)) + (~+ (list\map code.text parameters))])) + (def: #export (profile value) (Format /.Profile) - (|> ..empty - (..on_list "parents" (get@ #/.parents value) code.text) - (..on_maybe "identity" (get@ #/.identity value) ..artifact) - (..on_maybe "info" (get@ #/.info value) ..info) - (..on_set "repositories" (get@ #/.repositories value) code.text) - (..on_set "dependencies" (get@ #/.dependencies value) ..dependency) - (dictionary.put "compiler" (..dependency (get@ #/.compiler value))) - (..on_set "sources" (get@ #/.sources value) code.text) - (dictionary.put "target" (code.text (get@ #/.target value))) - (..on_maybe "program" (get@ #/.program value) code.text) - (..on_maybe "test" (get@ #/.test value) code.text) - (..on_dictionary "deploy_repositories" (get@ #/.deploy_repositories value) code.text code.text) - ..aggregate)) + (`` (|> ..empty + (..on_list "parents" (get@ #/.parents value) code.text) + (..on_maybe "identity" (get@ #/.identity value) ..artifact) + (..on_maybe "info" (get@ #/.info value) ..info) + (..on_set "repositories" (get@ #/.repositories value) code.text) + (..on_set "dependencies" (get@ #/.dependencies value) ..dependency) + (dictionary.put "compiler" (..dependency (get@ #/.compiler value))) + (..on_set "sources" (get@ #/.sources value) code.text) + (dictionary.put "target" (code.text (get@ #/.target value))) + (..on_maybe "program" (get@ #/.program value) code.text) + (..on_maybe "test" (get@ #/.test value) code.text) + (..on_dictionary "deploy_repositories" (get@ #/.deploy_repositories value) code.text code.text) + (~~ (template [<tag>] + [(dictionary.put (template.text [<tag>]) (..runtime (get@ <tag> value)))] + + [#/.java] + [#/.js] + [#/.python] + [#/.lua] + [#/.ruby])) + ..aggregate))) (def: #export project (Format Project) |