4 releases
| 0.1.10 | May 18, 2024 |
|---|---|
| 0.1.9 | May 18, 2024 |
| 0.1.4 |
|
#386 in Unix APIs
660 downloads per month
25KB
509 lines
Ruke
A dead-simple automation tool. Inspired by Makefile and Justfile.
[!TIP] Looking for a Dockerfile/docker-compose.yml generator? gorvus is waiting for you!
🔑 Key Features
- 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.
🛠 Usage
Pre-requisites: Rust and Cargo.
Installation
cargo install ruke
Getting Started
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.
Mastering the CLI
Available commands
ruke init- Create aRuke.tomlfile with a task withinruke list- List existing tasksruke new- Create a new task (interactive mode)ruke add- Add a command to an existing task (interactive mode)ruke remove- Remove an existing task (interactive mode)ruke [target]- Run a specific task
Aliases
ruke init,ruke iruke list,ruke lsruke new,ruke nruke add,ruke aruke remove,ruke rm
Arguments and flags
| Command | Flags |
|---|---|
ruke init |
doesn't have flags |
ruke list |
-m --minimal, -f --file <FILE> |
ruke new |
-n --name <NAME>, -f --file <FILE> |
ruke add |
-n --name <NAME>, -c --command <COMMAND>, -f --file <FILE> |
ruke remove |
-n --name <NAME>, -f --file <FILE> |
ruke [target] |
-q --quiet, -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].
Examples
ruke list --minimal will output less information (just tasks name) than ruke list.
ruke new -n "task-name" will create a new task named "task-name".
ruke add -n "task-name" -c "echo command-to-be-executed" will add the specified command in the task "task-name".
ruke remove -n "task-name" -f path/to/Ruke.toml will remove the task "task-name" from the Ruke.toml at an unexpected directory.
ruke build will run the task "build" and show you the outputs, while the ruke build -q will run silently.
Mastering the Ruke file
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.main] # defines a task with an unique name
commands = ["go run cmd/main.go"] # defines a command array to be executed sequentially
[tasks.dev]
commands = ["pnpm dev"]
[tasks.build]
commands = ["go build -o gorvus cmd/main.go", "./gorvus"]
💖 Contributing
Feel free to contribute, create an issue to report a bug, suggest an API change, an improvement or a feature.
How to contribute
- 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)
Contributors
Thanks goes to these amazing people:
📝 License
This project is licensed under the MIT License - See the LICENSE for more information.
Made with ❤ and 🦀 by Kauê Fraga Rodrigues.
Dependencies
~5–16MB
~145K SLoC

