https://github.com/magefile/mage
A mage file is any regular go file marked with a build target of "mage" and in package main. // +build mage package main You may have any number of magefiles in the same directory. Mage doesn't care what they're named aside from normal go filename rules. All they need is to have the mage build target. Handily, this also excludes them from your regular builds, so they can live side by side with your normal go files. Magefiles may use any of Go's usual build constraints, so you can include and exclude magefiles based on OS, arch, etc, whether in the filename or in the +build line. *Targets* Any exported function that has no arguments and either no return values or a single error value is considered a mage target. If the function has an error return, errors returned from the function will print to stdout and cause the magefile to exit with an exit code of 1. Any functions that do not fit this pattern are not considered targets by mage. Comments on the target function will become documentation accessible by running mage -l which will list all the build targets in this directory with the first sentence from their docs, or mage -h <target> which will show the full comment from the docs on the function. Targets may be run just like make targets, i,e, mage build Check it out and let me know what you think. More features forthcoming. -Nate -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.