#tool #development #command-line-tool #cli

app superepo

A blazingly fast cli tool for managing monorepo/project builds, runs and more!

5 releases

new 0.2.0 Dec 14, 2024
0.1.3 Dec 14, 2024
0.1.2 Dec 14, 2024
0.1.1 Dec 14, 2024
0.1.0 Dec 14, 2024

#5 in #development

GPL-2.0-only

16KB
248 lines

Supererpo

A Blazingly fast tool made for managing builds and runs. Giving your repo superpowers with macros and more.

Config

Every Superepo monorepo or project must use the config which must be located at the root project dir. Here's a Example Config:

[monorepo]
name = "engine"
git = "[email protected]:GrandEngineering/superepo.git"
run = "cargo build && cargo run --bin server"
opt_run = "cargo build --release && cargo run --bin server --release"
build = "cargo build"
opt_build = "cargo build --release"

[[monorepo.libs]]
name = "enginelib"
build = "cargo build"
opt_build = "cargo build --release"

[[monorepo.libs]]
name = "engine_core"
build = "cargo build"
opt_build = "cargo build --release"

[[monorepo.bins]]
name = "server"
build = "cargo build"
opt_build = "cargo build --release"
run = "cargo run --bin server"
opt_run = "cargo run --bin server --release"

[[monorepo.bins]]
name = "client"
build = "cargo build"
opt_build = "cargo build --release"
run = "cargo run --bin client"
opt_run = "cargo run --bin client --release"

[[monorepo.macros]
name = "fmt"
run = "cargo fmt"

Monorepo Table

Field Obligatory Type Description
name True String The name for the current project.
git True String The current project git repo.
build True String The command to build the project.
opt_build False String The command to build a release version of the project.
run False String The command to run the project.
opt_run False String The Command to run a release version of the project.
libs False Lib An Array of Lib tables to configure libraries of the project.
bins False Bin An Array of Bin tables to configure binaries of the project.
macros False Macro An Array of Macro tables to configure macros of the project.

Lib Tables

Field Obligatory Type Description
name True String Name of the library.
build True String The command to build the library.
opt_build False String The command to build a release version of the library.

Bin Tables

Field Obligatory Type Description
name True String Name of the binary.
build True String The command to build the binary.
opt_build False String The command to build a release version of the binary.
run True String The command to run the binary.
opt_run False String The Command to run a release version of the binary.

Macro Tables

Field Obligatory Type Description
name True String Name of the macro.
build True String The command to run.

Usage

To build or run using a release version you can use the --release flag.

Run

To run the project, you can use the following command:

superepo run

which will run the default run command specified in the config. Or you can run a specific binary by using:

superepo run <binary_name>

Build

To build the project, you can use the following command:

superepo build

which will build the default build command specified in the config. Or you can build a specific binary by using:

superepo build <binary_name/lib_name>

Macros

To run a macro, you can use the following command:

superepo macro <macro_name>

Dependencies

~1.4–2.1MB
~41K SLoC