Files
modulus/modulus/cli.py
T
khodowany fb93acca1a
publish / publish (push) Successful in 11m4s
Cleanup
2026-10-08 01:31:14 -05:00

47 lines
1.6 KiB
Python

import pathlib
import sys
import modulus.artifacts
import modulus.build
import modulus.build_context
import modulus.clangd
import modulus.config
import modulus.container
import modulus.export
import modulus.formatting
import modulus.lsp
import modulus.packaging
import modulus.process
import modulus.python
import modulus.run
def main(command):
repo_root = modulus.build_context.find_repo_root(pathlib.Path.cwd())
config = modulus.config.load_repo_config(repo_root)
context = modulus.build_context.build_context(repo_root, config)
if command == "format":
return modulus.formatting.launch(context, sys.argv[1:])
if command == "clangd":
return modulus.clangd.launch(context, sys.argv[1:])
if command in {"configure", "lsp"}:
modulus.export.sync_editor_files(repo_root, config)
if command == "configure":
return modulus.build.configure(context, sys.argv[1:])
if command == "build":
return modulus.build.build(context, sys.argv[1:])
if command == "test":
return modulus.build.test(context, sys.argv[1:])
if command == "package":
return modulus.packaging.package(context, sys.argv[1:])
if command == "run":
return modulus.run.product_run(context, sys.argv[1:])
if command == "lsp":
return modulus.lsp.lsp(context, sys.argv[1:])
if command in {'python', 'publish'}:
if not modulus.process.in_docker(context):
return modulus.container.docker_run(context, [f'./{context.tools_rel}/{command}.py', *sys.argv[1:]])
if command == 'python':
return modulus.python.launch(context, sys.argv[1:])
return modulus.artifacts.main(context, sys.argv[1:])
raise SystemExit(f"unknown modulus command: {command}")