Entry point for the marea escript.
Marea is a thin, transparent helper around mix, docker, helm,
kubectl and aws: it issues those commands consistently from a
single marea.yaml and prints every one before running it. The
current focus is Helm + Kubernetes, with optional plugins for the AWS
pieces (ECR / Route53 / S3); other deploy targets, registries and
providers are added as plugins, not by patching core.
main/1 is invoked by the escript wrapper. It reads marea.yaml,
loads the configured Malla.Plugin modules on top of the base
plugins (Setup, Build,
Run, Base), starts Marea.Service,
and dispatches the parsed command through the plugin chain.
See the Introduction and Architecture guides for the bigger picture and the full startup/dispatch flow.
Summary
Functions
Escript entry point.
Sets up signal traps, clears any leftover .marea/next_cmd, starts the
service, and runs the command. Any deferred shell command produced by
the chain is written to .marea/next_cmd for the wrapper to exec.
Entry point used by mix marea.
Same as main/1 but returns deferred commands as {:exec, cmd} so the
Mix task can run them via Port instead of relying on the escript wrapper.
Returns the full list of plugin modules for the current working
directory: @base_plugins plus the modules listed under plugins:
in marea.yaml.
Reads the YAML but does not start the service, so callers (notably the MCP server) can introspect the plugin chain without committing to a service lifecycle.