Skip to main content

♆ Rush: A Minimalistic Bash Utility

Project description

Rush 🏃

♆ Rush: A Minimalistic Bash Utility

img

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.yml where task_2 is chained to task_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.yml where 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 --path
    

    output,

    /home/rednafi/code/rush/rushfile.yml
    
  • View task commands

    $ rush task_5 task_6 task_7 --view-tasks
    

    img

  • 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 Rush globally 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rush-cli-0.6.1.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

rush_cli-0.6.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

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

Hashes for rush-cli-0.6.1.tar.gz
Algorithm Hash digest
SHA256 bd45112135bc86f34063837ed32ec26f022aed8704735ba9af490664ded5fdb5
MD5 c217320faacdca6cf17f7e30fe71ec30
BLAKE2b-256 33e6281a31b22d3061c634e5e299694edac0cfc523b8adf32408565d75f753b9

See more details on using hashes here.

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

Hashes for rush_cli-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb2577312ccc885ed6fe21bb31b7333eba07232befaebd6c6822bc4516572d4b
MD5 a2d9bd7bd9d58fd4c681a38a7757026f
BLAKE2b-256 4dece3d82bddd5ee1608c3bfeb4290700fa56b2a9c7d2129b489ad108ce0919f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page