Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/f/guardian

Guardian watches over your files and run assigned tasks.
https://github.com/f/guardian

Last synced: 18 days ago
JSON representation

Guardian watches over your files and run assigned tasks.

Awesome Lists containing this project

README

        

# 💂 Guardian.cr

Guardian watches over your files and runs assigned tasks.

![Guardian](http://i.imgur.com/mUzv2DL.gif)

## Installation

### OS X

```bash
brew tap f/guardian
brew install guardian
```

### Arch Linux

Guardian is availabe as a package from the Arch User Repository
called [guardian-git](https://aur.archlinux.org/packages/guardian-git/)

### From Source

```bash
git clone https://github.com/f/guardian.git && cd guardian
crystal build src/guardian.cr --release
```

## Quickstart

### Crystal Libs

Guardian works seamless with Crystal Projects. It automatically binds itself to
library you use.

```bash
$ crystal init lib yourlib
$ cd yourlib
$ guardian --init
Created guardian.yml of ./src/yourlib.cr
```

### Non-Crystal Libs

You can use Guardian for other projects.

```bash
$ guardian --init
Created guardian.yml
```

## Usage

```bash
$ guardian --init
```

It will create a `guardian.yml` file to use by Guardian.

## `guardian.yml`

`guardian.yml` is a simple YAML file.

Simply it has **YAML documents** with seperated by `---` line and each document has
`files` and `run` keys.

`files` key needs a glob pattern, and `run` is a shell command what to run.

```yaml
files: ./**/*.cr
run: crystal build ./src/guardian.cr
---
files: ./shard.yml
run: shards install
```

### `%file%` Variable

Guardian replaces `%file%` variable in commands with the changed file.

```yaml
files: ./**/*.txt
run: echo "%file% is changed"
```

Think you have a `hello.txt` in your directory, and Guardian will run `echo "hello.txt is changed"` command when it's changed.

## Running Guardian

```bash
$ guardian
💂 Guardian is on duty!
```

## Contributing

1. Fork it ( https://github.com/f/guardian/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request

## Contributors

- [f](https://github.com/f) Fatih Kadir Akın - creator, maintainer