A dead-simple automation tool. Inspired by Makefile and Justfile.
Tip
Looking for a Dockerfile/docker-compose.yml generator? gorvus is waiting for you!
- Fancy interface: good experience, clear instructions and colored texts are what you get.
- Lightning speed: written in Rust, when you run it, it looks like a rocket.
- Easy configuration: unlike other command runners, Ruke uses TOML so you don't need to learn a new language.
Pre-requisites: Rust and Cargo.
cargo install ruke
First things first, you need to define your tasks in a Ruke.toml
file.
Hopefully, Ruke can help you, just run
ruke init
With your Ruke.toml
ready, now you need to run a specific task.
The syntax for running a task is ruke [target]
where target is the task you wanna execute. Try this:
ruke
Obs.: the target task "main" is the default, therefore if you run ruke
, it's the same as running ruke main
.
ruke init
- Create aRuke.toml
file with a task withinruke list
- List the name of existing tasksruke add
- Add a new taskruke remove
- Remove an existing taskruke [target]
- Run a specific task
ruke init
,ruke i
ruke list
,ruke ls
ruke add
,ruke a
ruke remove
,ruke rm
ruke init
doesn't have arguments or flags.
ruke list
has the flags -a --all
and -f --file <FILE>
.
ruke add
has the flags -n --name <NAME>
, -c --command <COMMAND>
and -f --file <FILE>
.
ruke remove
has the flags -n --name <NAME>
and -f --file <FILE>
.
ruke
has the optional argument [target]
and the flags -q --quiet
and -f --file <FILE>
.
If you run ruke --help
you'll see nice guide, and if you want help for a specific command, try ruke help [command]
.
I suggest you to use one of these two names: Ruke.toml
or Rukefile
, however, as long as you write a valid TOML, you can name the file whatever you want and pass it with the -f --file <FILE>
flag.
Look at the full spec of TOML v1.0.0.
[[tasks]] # defines a task
name = "main" # defines an unique name to the task
command = "go run cmd/main.go" # defines a command to be executed
[[tasks]] # defines other task
name = "dev"
command = "pnpm dev"
arguments = ["--watch"] # specifies arguments to the command
[[tasks]] # another one
name = "build"
command = "go build -o gorvus cmd/main.go"
Feel free to contribute, create an issue to report a bug, suggest an API change, an improvement or a feature.
- Fork this repository
- Clone your fork on your machine
- Make your changes, commit and push these
- Open a pull request (write a descriptive message about what you changed)
Thanks goes to these amazing people:
This project is licensed under the MIT License - See the LICENSE for more information.
Made with ❤ and 🦀 by Kauê Fraga Rodrigues.