(.module: [lux #* [control ["p" parser]] ["." cli (#+ CLI)] [world [file (#+ Path)]]] ## [/// ## [importer (#+ Source)]] ) (type: #export Configuration {## #sources (List Source) #sources (List Path) #target Path #module Text}) (type: #export Service (#Compilation Configuration) (#Interpretation Configuration)) (do-template [ ] [(def: #export (CLI Text) (cli.named cli.any))] [source "--source"] [target "--target"] [module "--module"] ) (def: #export configuration (CLI Configuration) ($_ p.and (p.some ..source) ..target ..module)) (def: #export service (CLI Service) ($_ p.or (p.after (cli.this "build") ..configuration) (p.after (cli.this "repl") ..configuration)))