Guardian watches over your files and runs assigned tasks.
brew tap f/guardian
brew install guardian
git clone https://github.com/f/guardian.git && cd guardian
crystal build src/guardian.cr --release
Guardian works seamless with Crystal Projects. It automatically binds itself to library you use.
$ crystal init lib yourlib
$ cd yourlib
$ guardian init
Created .guardian.yml of ./src/yourlib.cr
You can use Guardian for other projects.
$ guardian init
Created .guardian.yml
$ guardian init
It will create a .guardian.yml
file to use by Guardian.
.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.
files: ./**/*.cr
run: crystal build ./src/guardian.cr
---
files: ./shard.yml
run: crystal deps
Guardian replaces %file%
variable in commands with the changed file.
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.
$ guardian
💂Guardian is on duty!
- Fork it ( https://github.com/f/guardian/fork )
- 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)
- Create a new Pull Request
- f Fatih Kadir Akın - creator, maintainer