A cross-platform Python CLI to shortcut to command-line commands. Inspired by Makefiles and npm scripts.
It's recommended that you use a virtual environment with rav.
python3 -m pip install rav
Minimum python version is 3.7
Basic Usage:
cd ~/path/to/projectrav newRun through the setup wizard to create
rav.yaml
or
Manually create rav.yaml
scripts:
echo: echo hello worldUse:
rav run echo
The configuration block is flexible. Use rav, scripts, or commands as the top-level key.
rav.yaml
name: rav-in-sixty-seconds
scripts:
echo: echo "this is awesome"
server: venv/bin/python -m http.serverOr if on windows:
rav.yaml
name: rav-in-sixty-seconds
scripts:
echo: echo this is awesome
win-server: venv\Scripts\python -m http.serverThe following all work and will run in this exact order (rav first, scripts second, commands last)
rav:
echo: echo "this is awesome"
server: venv/bin/python -m http.serverscripts:
echo: echo "this is awesome"
server: venv/bin/python -m http.servercommands:
echo: echo "this is awesome"
server: venv/bin/python -m http.serverrav run <command>
rav.yaml:
scripts:
<command>: echo "this is a command"
rav.yaml:
scripts:
hello: echo hello world!
rav run hello
By default, rav run will look for a rav.yaml file in the current directory. You can customize it, with -f as explained below.
rav sample
This will output rav.sample.yaml in the current directory.
rav run -f rav.sample.yaml echo
-f is used to specify a custom rav file as documented below.
rav run echo
Or
rav run server
Or (if windows):
rav run win-server 8080
Rav supports custom yaml files by default. The yaml declaration needs to be any of the following:
ravscriptscommands
project.yaml
rav:
sweet: echo "this is working"
echo: echo "so is this"rav.basic.yaml
scripts:
sweet: echo "this is working"
echo: echo "so is this"rav run -f project.yaml sweet
or
rav run --file rav.other.yaml echo
Here's a few rules for custom files:
-for--fileis used to specify a custom rav file-for--filemust be used prior to the command shortcut name (e.g.rav run -f <your-new-file> <your-command>)
rav.yaml
scripts:
multi:
- echo this is
- echo awesome
- echo simple
- echo and
- echo easyRun with:
rav run multi
This is the same as running:
echo this is && echo awesome && echo simple && echo and && echo easy