https://github.com/junekelly/manuel
A grunt-inspired task runner for bash
https://github.com/junekelly/manuel
Last synced: about 1 year ago
JSON representation
A grunt-inspired task runner for bash
- Host: GitHub
- URL: https://github.com/junekelly/manuel
- Owner: JuneKelly
- Created: 2014-07-07T18:42:53.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2019-05-02T10:57:19.000Z (about 7 years ago)
- Last Synced: 2025-03-17T21:43:36.820Z (about 1 year ago)
- Language: Shell
- Size: 482 KB
- Stars: 34
- Watchers: 3
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# manuel

A grunt-inspired task runner for bash.
# Prerequisites
Manuel depends on `bash` version 4.
# Installation
Simply clone this repository and put the `manuel` script on your path.
For example, clone into `~/opt` and then link the script into `~/bin` :
```bash
$ cd ~/opt
$ git clone git://github.com/ShaneKilkelly/manuel
$ ln -s $HOME/opt/manuel/manuel $HOME/bin/manuel
```
# Usage
- Create a `manuelfile` in your project. `manuel` provides a handy `init` task
for this purpose
```bash
$ manuel init
>> Creating new manuelfile in /your/project/directory
```
- Fill the `manuelfile` with 'tasks' (aka bash functions):
```bash
#! /usr/bin/env bash
function build {
echo ">> I am building in $1 mode"
}
function run_tests {
build 'test'
echo ">> Testing, all passed!"
}
```
- Run your tasks like so:
```bash
$ manuel run_tests
>> I am building in test mode
>> Testing, all passed!
```
# Plugins
Manuel supports loading of third-party plugins (again, really just bash functions).
See [Plugins](doc/Plugins.md) for more details.
Some really nice plugins are:
- [manuel-contrib-watch](https://github.com/ShaneKilkelly/manuel-contrib-watch)
- [manuel-contrib-concurrent](https://github.com/ShaneKilkelly/manuel-contrib-concurrent)
# Autocomplete
To enable autocompletion for manuel tasks, simply source the autocompletion file
corresponding to you shell. For instance, for bash, add to your `~/.bashrc`:
```bash
source manuel.autocomplete.bash
```
Or for zsh:
```bash
source manuel.autocomplete.zsh
```
Note: Autocompletion requires manuel to be in your path.
# Documentation
- [Built-in tasks](doc/Builtins.md)
- [Plugins](doc/Plugins.md)
# License
Released under the [MIT](http://opensource.org/licenses/MIT) license