The Lenra's command line interface.
To build and run the Lenra elements that handle your app, the Lenra CLI needs Docker and Docker Compose.
You can also install the Docker buildx command to use the Buildkit optimization given by Dofigen.
Install the Lenra CLI using one of the next possibilities.
You can download the binary from the release page and add it to your path environment variable.
First install Cargo, the Rust package manager: https://doc.rust-lang.org/cargo/getting-started/installation.html
Then use the next command to install the Lenra's cli:
bash
cargo install lenra_cli
First install Cargo, the Rust package manager: https://doc.rust-lang.org/cargo/getting-started/installation.html
Then clone this repository and install it with Cargo:
bash
git clone https://github.com/lenra-io/lenra_cli.git
cargo install --path .
Use the help options to understand how to use it:
```bash $ lenra --help lenra_cli 0.0.0 The Lenra command line interface
USAGE:
lenra
OPTIONS: -h, --help Print help information -V, --version Print version information
SUBCOMMANDS: build Build your app in release mode dev Start the app in an interactive mode help Print this message or the help of the given subcommand(s) init Generates dockerfile and docker compose file with the init command logs View output from the containers new Create a new Lenra app project start Start your app previously built with the build command stop Stop your app previously started with the start command ```
This tools contains many subcommands to help you doing what you need.
This subcommand creates a new Lenra app project from a given template and in a given directory. The target directory must not exist.
```bash $ lenra new --help lenra-new Create a new Lenra app project
USAGE:
lenra new
ARGS:
The project template from which your project will be created. For example,
defining rust
or template-rust
will use the next one:
https://github.com/lenra-io/template-rust You can find all our templates at
this url:
https://github.com/orgs/lenra-io/repositories?q=&type=template&language=&sort=stargazers
You also can set the template project full url to use custom ones
OPTIONS: -h, --help Print help information ```
This subcommand builds the Lenra app of the current directory. The app configuration are defined by a configuration file.
```bash $ lenra build --help lenra-build Build your app in release mode
USAGE: lenra build [OPTIONS]
OPTIONS:
--config
This subcommand starts the Lenra app of the current directory previously built.
```bash $ lenra start --help lenra-start Start your app previously built with the build command
USAGE: lenra start [OPTIONS]
OPTIONS:
--config
This subcommand displays output from the containers.
```bash $ lenra logs --help lenra-logs View output from the containers
USAGE: lenra logs [OPTIONS] [SERVICES]...
ARGS:
OPTIONS:
-f, --follow Follow log output
-h, --help Print help information
--no-color Produce monochrome output
--no-log-prefix Don't print prefix in logs
--since
This subcommand stops the Lenra app of the current directory and removes the Docker Compose elements.
```bash $ lenra stop --help lenra-stop Stop your app previously started with the start command
USAGE: lenra stop [OPTIONS]
OPTIONS:
--config
This subcommand starts the Lenra app of the current directory in dev mode.
```bash $ lenra dev --help lenra-dev Start the app in an interactive mode
USAGE: lenra dev [OPTIONS]
OPTIONS:
--config
This subcommand generates Docker and Docker Compose files.
```bash $ lenra init --help lenra-init Generates dockerfile and docker compose file with the init command
USAGE: lenra init [OPTIONS]
OPTIONS:
--config
When using the dev sub-command, the CLI enters an interactive mode. The interactive mode builds and starts the app and then displays its logs.
When the CLI receive a Ctrl + C
signal in dev mode, it displays an interactive command prompt.
Here is the help
interactive command result:
```bash [lenra]$ help lenra_cli The Lenra interactive command line interface
USAGE:
lenra
OPTIONS: -h, --help Print help information
SUBCOMMANDS: continue Continue the previous logs command since the last displayed logs help Print this message or the help of the given subcommand(s) logs View output from the containers reload Reload the by rebuilding and restarting it stop Stop your app previously started with the start command ```
This tools contains many subcommands to help you do what you need.
This subcommand continues the previous logs command since the last displayed logs.
```bash [lenra]$ continue --help lenra-continue Continue the previous logs command since the last displayed logs
USAGE: lenra continue
OPTIONS: -h, --help Print help information ```
This subcommand reloads the app by rebuilding and restarting it.
```bash [lenra]$ reload --help lenra-reload Reload the app by rebuilding and restarting it
USAGE: lenra reload
OPTIONS: -h, --help Print help information ```
The Lenra's configuration file describes your Lenra app configurations, like API versions or how to build it.
Here is an example using a Dofigen file:
yaml
componentsApi: "1.0"
generator:
dofigen: dofigen.yml
The configuration is the main element of the file:
| Field | Type | Description |
|------------------|------------------|-------------------------------|
| componentsApi
| String | The components API version |
| generator
| Generator The generator configuration |
The generator define your application is built. There are many configurators:
The Dofigen generator use a Dofigen configuration to generate the Docker image.
The Dofigen configuration can be the path to a Dofigen file or it content directly.
The Docker generator use a Dockerfile to generate the Docker image.
The Dockerfile can be the path to a file or it content directly.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please open an issue with the tag "enhancement" or "bug". Don't forget to give the project a star! Thanks again!
Distributed under the MIT License. See LICENSE for more information.
Lenra - @lenra_dev - contact@lenra.io
Project Link: https://github.com/lenra-io/lenra_cli