Snag
An automatic build tool for all your needs
Installation
If you have go installed and want to install
the latest and greatest you can run:
$ go get github.com/Tonkpils/snag
If you do not have go installed on your machine, you can checkout
the releases section to
download the binary for your platform.
Usage
Snag works by reading a .snag.yml
file which contains a set of
commands, ignored directories, and options.
As an example, the file with these contents:
script:
- echo "hello world"
- go test
ignore:
- .git
verbose: true
will make snag run the commands echo "hello world"
and go test
,
ignoring changes in the .git
directory, and returning output on success
through the verbose
option.
Simply run:
snag
From a project with a .snag.yml
file and develop away!
Caveats
Snag will run your configured scripts if ANY file modifed in your current directory.
If you scripts generate any files, you should add them to the ignore
section in your
.snag.yml
to avoid an endless build loop.
Known Issues
open /dev/null: too many open files
You may experience this error if you're running on OSX. You may need to bump
the maximum number of open file on your machine. You can refer to this
article for more information on the max files on OSX and this superuser post for a solution