Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kcmerrill/alfred

(v0.2) Even Batman needs a little help. Task runner. Automator. Build system.
https://github.com/kcmerrill/alfred

automation build-system build-tool developer-tools task-runner

Last synced: about 2 months ago
JSON representation

(v0.2) Even Batman needs a little help. Task runner. Automator. Build system.

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/kcmerrill/alfred.svg?branch=master)](https://travis-ci.org/kcmerrill/alfred) [![Join the chat at https://gitter.im/kcmerrill/alfred](https://badges.gitter.im/kcmerrill/alfred.svg)](https://gitter.im/kcmerrill/alfred?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Open Source Helpers](https://www.codetriage.com/kcmerrill/alfred/badges/users.svg)](https://www.codetriage.com/kcmerrill/alfred)

![Alfred](assets/alfred29.jpg "Alfred")

> Even Batman needs a little help.

# alfred

A simple go/yaml powered make file/task runner with a bit of a twist and a ton of flexibility.

## Features

- Extendable + Plugins
- Watch files for modifications
- Retry/Rerun tasks based on failures before giving up
- Logging
- Success/Failure decision tree
- Run tasks asynchronously or synchronously
- Arguments
- Loops
- Static webserver
- Many more!

For more information [RTFM](TFM.md "additional documentation").

## Sample Usage

Create a file named: `alfred.yml`

```yaml
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

## Screencast/Demo

[![asciicast](assets/demo.png)](https://asciinema.org/a/103711)

## Example uses

- 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

## Binaries || Installation

[![MacOSX](https://raw.githubusercontent.com/kcmerrill/go-dist/master/assets/apple_logo.png "Mac OSX")](http://go-dist.kcmerrill.com/kcmerrill/alfred/mac/amd64) [![Linux](https://raw.githubusercontent.com/kcmerrill/go-dist/master/assets/linux_logo.png "Linux")](http://go-dist.kcmerrill.com/kcmerrill/alfred/linux/amd64)

via go:

`$ go get -u github.com/kcmerrill/alfred`

via docker:

`$ docker run -v $PWD:$PWD -w $PWD kcmerrill/alfred`