# MetaBuilder CLI This CLI targets MetaBuilder services via HTTP and includes a Lua runtime for executing package scripts. Uses Conan + CMake for dependency management and builds. ## Requirements - [Conan 2](https://docs.conan.io/) (used for dependency resolution) - CMake 3.27+ (the Conan toolchain generator targets this minimum) - Ninja (build backend) - A running MetaBuilder frontend (defaults to `http://localhost:3000`) ## Building ```bash cd frontends/cli conan install . --output-folder build --build missing cmake -S . -B build -G Ninja cmake --build build ``` Conan provisions these dependencies: - [`cpr`](https://github.com/libcpr/cpr) - HTTP requests - [`lua`](https://www.lua.org/) - Lua 5.4 interpreter - [`sol2`](https://github.com/ThePhD/sol2) - C++/Lua binding - [`nlohmann_json`](https://github.com/nlohmann/json) - JSON handling ## Running The executable looks for `METABUILDER_BASE_URL` (default `http://localhost:3000`): ```bash # API commands ./build/bin/metabuilder-cli auth session ./build/bin/metabuilder-cli user list # Package commands (run from project root) ./build/bin/metabuilder-cli package list ./build/bin/metabuilder-cli package generate my_forum --category social --with-schema --entities Thread,Post ./build/bin/metabuilder-cli package run codegen_studio package_template get_categories ``` ## Commands ### API Commands ```bash metabuilder-cli auth session # Show current session metabuilder-cli auth login # Authenticate metabuilder-cli user list # List users metabuilder-cli user get # Get user by ID metabuilder-cli tenant list # List tenants metabuilder-cli tenant get # Get tenant by ID metabuilder-cli dbal # DBAL operations ``` ### Package Commands ```bash metabuilder-cli package list # List packages with scripts metabuilder-cli package run