♆ Rush: A Minimalistic Bash Utility
Project description
Rush 🏃
♆ Rush: A Minimalistic Bash Utility
Run all your task automation Bash commands from a single rushfile.yml file.
Features
- Supports all bash commands
- Option to ignore or run specific tasks
- By default, runs commands in interactive mode
- Option to catch or ignore command errors
- Option to show or supress command outputs
- Command chaining is supported (See the example
rushfile.ymlwheretask_2is chained totask_1)
Installation
$ pip3 install rush-cli
Workflow
Rushfile
Here is an example rushfile.yml. It needs to reside in the root directory:
# rushfile.yml
task_1: |
echo "task1 is running"
task_2: |
# Task chaining [task_1 is a dependency of task_2]
task_1
echo "task2 is running"
task_3: |
ls -a
sudo apt-get install cowsay | head -n 0
cowsay "Around the world in 80 days!"
//task_4: |
# Ignoring a task [task_4 will be ignored while execution]
ls | grep "ce"
ls > he.txt1
task_5: |
# Running a bash script from rush
./script.sh
Available Options
To see all the available options, run:
$ rush
or,
$ rush --help
This should show:
Usage: rush [OPTIONS] [FILTER_NAMES]...
♆ Rush: A Minimalistic Bash Utility
Options:
-a, --all Run all tasks
--hide-outputs Option to hide interactive output
--ignore-errors Option to ignore errors
-p, --path Show the absolute path of rushfile.yml
--no-deps Do not run dependent tasks
--view-tasks View task commands
-ls, --list-tasks List task commands with dependencies
--no-warns Do not show warnings
-v, --version Show rush version
-h, --help Show this message and exit.
Running Tasks
-
Run all the tasks
$ rush --all -
Run specific tasks
$ rush task_1 task_4 -
Ignore specific tasks
See the example
rushfile.ymlwhere the'//'before a task name means that the task will be ignored during execution# rushfile.yml //task_4: | echo "This task will be ignored during execution."This ignores the task named
//task_4. -
Run tasks non interactively (supress the outputs)
$ rush --hide-outputs -
Run tasks ignoring errors
$ rush --ignore-errors -
Do not run the dependent tasks
$ rush task_2 --no-deps
Viewing Tasks
-
View absolute path of rushfile.yml
$ rush --pathoutput,
/home/rednafi/code/rush/rushfile.yml -
View task commands
$ rush task_5 task_6 task_7 --view-tasks -
View task list with dependencies
$ rush -ls
Quirks
-
Rush runs all the commands using
/usr/bin/bash. So shell specific syntax with other shebangs might throw error. -
If you are running Bash script from rush, use shebang (
#!/usr/bin/env bash)
Issues
- Rush works better with python 3.7 and up
- If your have installed
Rushglobally and it throws a runtime error, you can try to solve it via adding the following variables to your~./bashrc:
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
You can find more information about the issue and why it's a non-trivial problem here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rush-cli-0.6.1.tar.gz.
File metadata
- Download URL: rush-cli-0.6.1.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd45112135bc86f34063837ed32ec26f022aed8704735ba9af490664ded5fdb5
|
|
| MD5 |
c217320faacdca6cf17f7e30fe71ec30
|
|
| BLAKE2b-256 |
33e6281a31b22d3061c634e5e299694edac0cfc523b8adf32408565d75f753b9
|
File details
Details for the file rush_cli-0.6.1-py3-none-any.whl.
File metadata
- Download URL: rush_cli-0.6.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb2577312ccc885ed6fe21bb31b7333eba07232befaebd6c6822bc4516572d4b
|
|
| MD5 |
a2d9bd7bd9d58fd4c681a38a7757026f
|
|
| BLAKE2b-256 |
4dece3d82bddd5ee1608c3bfeb4290700fa56b2a9c7d2129b489ad108ce0919f
|