funzzy 0.2.0

The configurable watcher inspired by entr.
Documentation

funzzy Build Status Crate version

The configurable watcher. (Inspired by antr / entr)

Configure execution of commands when some file change in different directories using semantic yaml.

# .watch.yaml
# list here all the events and the commands that it should execute

- name: run my tests
  when:
    change: 'tests/**'
    run: make test

- name: compile my sass
  when:
    change: 'src/static/**'
    run: compass

- name: Starwars
  when:
    change: ".watch.yaml"
    run: telnet towel.blinkenlights.nl

Motivation

Create a lighter watcher to run my tests everytime something in my project change. So I won't forget to keep my tests passing. Funzzy was made with Rust that is why it consumes almost nothing to run.

Installing

Make sure you have installed the follow dependecies:

  • Rust

From Crates.io

cargo install funzzy

**Make sure you have $HOME/.cargo/bin in your PATH export $PATH:$HOME/.cargo/bin

From source

Clone this repo and do:

make install

Running

Initializing with boilerplate:

funzzy init

Change the yaml as you want. Then run:

funzzy watch

Playground

It does not work between vm and host machine

If you wanna try without installing it in your machine, try the playground vagrant.

cd funzzy
vagrant up

# testing.
vagrant ssh -c "cd /vagrant && funzzy watch"
vagrant ssh -c "touch /vagrant/tests/vagrant.tmp"

It will take some time to be prepared.

Tests

Running tests:

cargo test

Contributing

  • Fork it!
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request

Pull Requests are really welcome! Others support also.

Pull Request should have unit tests

Licence

This project was made under MIT Licence.