aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/compositor
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/program/compositor')
-rw-r--r--stdlib/source/program/compositor/cli.lux81
-rw-r--r--stdlib/source/program/compositor/export.lux55
-rw-r--r--stdlib/source/program/compositor/import.lux8
3 files changed, 29 insertions, 115 deletions
diff --git a/stdlib/source/program/compositor/cli.lux b/stdlib/source/program/compositor/cli.lux
deleted file mode 100644
index 1962569b3..000000000
--- a/stdlib/source/program/compositor/cli.lux
+++ /dev/null
@@ -1,81 +0,0 @@
-(.using
- [library
- [lux {"-" Module Source}
- [control
- [pipe {"+" case>}]
- ["<>" parser
- ["[0]" cli {"+" Parser}]]]
- [tool
- [compiler
- [meta
- [archive
- [module
- [descriptor {"+" Module}]]]]]]
- [world
- [file {"+" Path}]]]])
-
-(type: .public Source
- Path)
-
-(type: .public Host_Dependency
- Path)
-
-(type: .public Library
- Path)
-
-(type: .public Target
- Path)
-
-(type: .public Compilation
- [(List Source) (List Host_Dependency) (List Library) Target Module])
-
-(type: .public Export
- [(List Source) Target])
-
-(type: .public Service
- (Variant
- {#Compilation Compilation}
- {#Interpretation Compilation}
- {#Export Export}))
-
-(template [<name> <long> <type>]
- [(def: <name>
- (Parser <type>)
- (cli.named <long> cli.any))]
-
- [source_parser "--source" Source]
- [host_dependency_parser "--host_dependency" Host_Dependency]
- [library_parser "--library" Library]
- [target_parser "--target" Target]
- [module_parser "--module" Module]
- )
-
-(def: .public service
- (Parser Service)
- ($_ <>.or
- (<>.after (cli.this "build")
- ($_ <>.and
- (<>.some ..source_parser)
- (<>.some ..host_dependency_parser)
- (<>.some ..library_parser)
- ..target_parser
- ..module_parser))
- (<>.after (cli.this "repl")
- ($_ <>.and
- (<>.some ..source_parser)
- (<>.some ..host_dependency_parser)
- (<>.some ..library_parser)
- ..target_parser
- ..module_parser))
- (<>.after (cli.this "export")
- ($_ <>.and
- (<>.some ..source_parser)
- ..target_parser))
- ))
-
-(def: .public target
- (-> Service Target)
- (|>> (case> (^or {#Compilation [sources host_dependencies libraries target module]}
- {#Interpretation [sources host_dependencies libraries target module]}
- {#Export [sources target]})
- target)))
diff --git a/stdlib/source/program/compositor/export.lux b/stdlib/source/program/compositor/export.lux
index cb19398e7..4ac08f423 100644
--- a/stdlib/source/program/compositor/export.lux
+++ b/stdlib/source/program/compositor/export.lux
@@ -1,32 +1,31 @@
(.using
- [library
- [lux {"-" Source}
- [abstract
- ["[0]" monad {"+" do}]]
- [control
- ["[0]" try {"+" Try}]
- [concurrency
- ["[0]" async {"+" Async}]]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]
- [collection
- ["[0]" dictionary]
- ["[0]" sequence]]
- [format
- ["[0]" binary]
- ["[0]" tar]]]
- [time
- ["[0]" instant]]
- [tool
- [compiler
- [meta
- ["[0]" io "_"
- ["[1]" context {"+" Extension}]]]]]
- [world
- ["[0]" file]]]]
- [//
- [cli {"+" Source Export}]])
+ [library
+ [lux {"-" Source}
+ [abstract
+ ["[0]" monad {"+" do}]]
+ [control
+ ["[0]" try {"+" Try}]
+ [concurrency
+ ["[0]" async {"+" Async}]]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" dictionary]
+ ["[0]" sequence]]
+ [format
+ ["[0]" binary]
+ ["[0]" tar]]]
+ [time
+ ["[0]" instant]]
+ [tool
+ [compiler
+ [meta
+ [cli {"+" Source Export}]
+ ["[0]" io "_"
+ ["[1]" context {"+" Extension}]]]]]
+ [world
+ ["[0]" file]]]])
(def: file
"library.tar")
diff --git a/stdlib/source/program/compositor/import.lux b/stdlib/source/program/compositor/import.lux
index 9554ec934..7f21f20ec 100644
--- a/stdlib/source/program/compositor/import.lux
+++ b/stdlib/source/program/compositor/import.lux
@@ -22,13 +22,9 @@
[tool
[compiler
[meta
- [archive
- [module
- [descriptor {"+" Module}]]]]]]
+ [cli {"+" Library Module}]]]]
[world
- ["[0]" file]]]]
- [//
- [cli {"+" Library}]])
+ ["[0]" file]]]])
(def: Action
(type (All (_ a) (Async (Try a)))))