Because even Batman needs a little help.
A simple go/yaml powered make file/task runner with a bit of a twist.
via go:
$ go get -u github.com/kcmerrill/alfred
via docker:
$ docker run -v $PWD:$PWD -w $PWD kcmerrill/alfred
- Extendable. Common tasks(Private too)
- Watch files for modifications
- Retry/Rerun tasks based on failures before giving up
- Logging
- Success/Failure decision tree
- Run tasks asynchronously or synchronously
- Autocomplete task names
- Static webserver
- Many more!
Create a file named: alfred.yml
say.hello:
summary: I will say hello!
usage: alfred say.hello
command: echo "Hello!"
say.howareyou:
summary: I will ask how you are
usage: alfred say.howareyou
command: |
echo "How"
echo "Are"
echo "You?"
speak:
tasks: say.hello say.howareyou
blurt:
multitask: say.hello say.howareyou
Then, anywhere in the top-level or child directories to the alfred.yml
file:
alfred
Will show you all of the available tasks and a quick summary.
alfred say.hello
Will simply say hello
alfred say.howareyou
Will ask how you are
alfred speak
will perform both tasks in the specified order
alfred blurt
will perform both tasks at the same time
To see a comprehensive list of features and functionality please RTFM.
- Monitor websites
- Setup/Update/Deploy projects in your dev env
- Simple Nagios, Jenkins, pingdom replacement
- Monitor crons(alert on failures, update endpoints etc ... )
- Watch for file modifications to run tests->builds
Copy the included alfred.completion.sh
to /etc/bash_completion.d/
.
Or source it in your ~/.profile
file.
Or alfred /self tab.completion
You might say I've cheated the testing route by only scraping the output. You'd be right.
"I live with a wizard. I cheat" ~ Mouse