lenra_cli 1.0.0-beta.5

The Lenra command line interface
lenra_cli-1.0.0-beta.5 is not a library.

Contributors Forks Stargazers Issues MIT License

Lenra cli

The Lenra's command line interface.

Report Bug ยท Request Feature

Getting Started

Prerequisites

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.

Download the binary

You can download the binary from the release page and add it to your path environment variable.

Cargo install

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:

cargo install lenra_cli

Build it from sources

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:

git clone https://github.com/lenra-io/lenra_cli.git
cargo install --path .

How to use it

Use the help options to understand how to use it:

$ lenra --help
lenra_cli 0.0.0
The Lenra command line interface

USAGE:
    lenra <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    build    Build your app in release mode
    help     Print this message or the help of the given subcommand(s)
    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

Subcommands

This tools contains many subcommands to help you doing what you need.

  • new: creates a new Lenra app project
  • build: builds the Lenra app of the current directory
  • start: starts your app previously built with the build command
  • logs: displays output from the containers
  • stop: stops your app previously started with the start command

new

This subcommand creates a new Lenra app project from a given template and in a given directory. The target directory must not exist.

$ lenra new --help
lenra-new 
Create a new Lenra app project

USAGE:
    lenra new <TEMPLATE> <PATH>

ARGS:
    <TEMPLATE>    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
    <PATH>        The project path

OPTIONS:
    -h, --help    Print help information

build

This subcommand builds the Lenra app of the current directory. The app configuration are defined by a configuration file.

$ lenra build --help
lenra-build 
Build your app in release mode

USAGE:
    lenra build [OPTIONS]

OPTIONS:
        --config <CONFIG>    The app configuration file [default: lenra.yml]
    -h, --help               Print help information

start

This subcommand starts the Lenra app of the current directory previously built.

$ lenra start --help
lenra-start 
Start your app previously built with the build command

USAGE:
    lenra start [OPTIONS]

OPTIONS:
        --config <CONFIG>    The app configuration file [default: lenra.yml]
    -h, --help               Print help information

logs

This subcommand displays output from the containers.

$ lenra logs --help
lenra-logs 
View output from the containers

USAGE:
    lenra logs [OPTIONS] [SERVICES]...

ARGS:
    <SERVICES>...    The logged service list [default: app] [possible values: app, devtool,
                     postgres]

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 <SINCE>    Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g.
                           42m for 42 minutes)
    -t, --timestamps       Show timestamps
        --tail <TAIL>      Number of lines to show from the end of the logs for each container
                           [default: all]
        --until <UNTIL>    Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative
                           (e.g. 42m for 42 minutes)

stop

This subcommand stops the Lenra app of the current directory and removes the Docker Compose elements.

$ lenra stop --help
lenra-stop 
Stop your app previously started with the start command

USAGE:
    lenra stop [OPTIONS]

OPTIONS:
        --config <CONFIG>    The app configuration file [default: lenra.yml]
    -h, --help               Print help information

Configuration file

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:

componentsApi: "1.0"
generator:
  dofigen: dofigen.yml

Configuration

The configuration is the main element of the file:

Field Type Description
componentsApi String The components API version
generator Generator The generator configuration

Generator

The generator define your application is built. There are many configurators:

Dofigen

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.

Docker

The Docker generator use a Dockerfile to generate the Docker image.

The Dockerfile can be the path to a file or it content directly.

Contributing

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!

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Lenra - @lenra_dev - contact@lenra.io

Project Link: https://github.com/lenra-io/lenra_cli