reactive file based automation tool
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Build Status

Made is a simple reactive build tool. If a file changes, every dependency of this file will be rebuilt. This project is heavily inspired by tup.

The build system needs a simple configuration file (Madefile) in the current folder. It is composed of shell commands on every line.

Made watches all files enclosed in '<|' and '|>'. If the glob pattern inside matches, the command on this line is executed.

cp <|.hgignore|> .gitignore
cp <|.gitignore|> .hgignore
cp <|*.txt|> dir
cp <|*.txt|> build/%b.html

The first line copies .hgignore to .gitignore if .hgignore is modified. The second line does the same in reverse (probably not a good idea :-)). The third line copies every changed *.txt file to the folder "dir". The last line copies every *.txt file from the current folder to the folder "dir" and changes the extension to .html, if a *.txt file has changed.

When made is executed it will run indefinitely and execute the above commands on every matching file change event (newly added or modified).


go get

If You have a properly configured Go environment.

TODO's and limitations

  • Not stable yet
  • Only OS X is currently supported.
  • No concurrency
  • Uses polling to find file modifications
  • No string escaping in Madefile