Simplify writing and executing repetitive tasks.
Steak is a minimal and powerful utility for collecting all of your mindless,
repetitive tasks into a single, brilliantly-named steakfile
. As an evolution
of bumpy, steak focuses on the same design
principles - minimize friction when writing tasks and provide a simple CLI
interface to execute your tasks.
Inspired by tools like nose, steak allows you to write plain Python functions which will be automatically discovered and prepared for execution. By inspecting your function signatures, steak learns as much as it can and provides a simple and understandable command line interface to your tasks without requiring any extra effort on your end.
Toss the code below in a steakfile
or grill.py
.
def build():
'''Builds ALL THE CODE.'''
print('Building...')
def run():
'''Runs ALL THE PROGRAMS.'''
build()
print('Running...')
def clean():
'''Cleans ALL THE GARBAGE.'''
print('Cleaning...')
Just call the included grill
command-line tool to run your tasks.
$ grill build
Building...
$ grill run
Building...
Running...
$ grill clean
Cleaning...
Give multiple space-separated task names to grill
to execute them all.
$ grill build run
Building...
Running...
Notice that grill
tries to avoid repeating task execution, so it only runs
the build
task once! You can explicitly run a task multiple times.
$ grill build build run
Building...
Building...
Running...
Steak will allow you to abbreviate command names as much as you want, but if there's ambiguous tasks, the task selection behavior is unreliable.
$ grill b r
Building...
Running...
If you invoke grill
with no arguments, an automatic help message will be
printed out.
$ grill
build
Builds ALL THE CODE.
clean
Cleans ALL THE GARBAGE.
run
Runs ALL THE PROGRAMS.