I like using Make for my projects, even though I don’t understand some of the design decisions ($< > $@, naturally). Still, it’s installed everywhere and it does a pretty good job. But it doesn’t run automatically, and that is a problem.
So I created Remake with all of that in mind. Instead of running make [target] you run remake [target], and that’s it.
For example, if you have a Makefile like this:
app:$(wildcard *.go) go build
http: app $(wildcard templates/*) app -http
test:$(wildcard *.go) go test
You could run remake http, edit some files, and it would automatically restart the server. You could also run remake test to automatically run tests after each change. Or you could run remake http test to do both.
I have a few ideas for improvements but it’s already pretty handy. It’s available on GitHub so check it out there.