Installation =========== To be able to use this package anywhere on your computer, move the files to the following location: ... app someotherapp cake vendors notify.php shells autotest.php repo.php For cake 1.3+ the process is even simpler: app someotherapp cake plugins <- new folder in 1.3 autotest vendors notify.php shells autotest.php repo.php vendors cd plugins git clone git://github.com/rodrigorm/cake_autotest.git autotest Notify - send status messages Autotest - monitor a folder for changes, and call the repo shell for any changed files Repo - syntax checks and test-case running by file name Using as a git hook ================== To use as a pre-commit hook, create/edit .git/hooks/pre-commit with the following contents: >>> #!/bin/sh cake repo checkFiles pre-commit -q -noclear <<< Ensure that the shebang matches the path to your desired shell. To find your shell type "which sh/bash/csh" and edit appropriately. Make the file executable and the repo shell will then be called each time you commit. you can test your git hook by typing: $ . .git/hooks/pre-commit Using as an svn hook ==================== *Use as an svn hook is still a WIP* To use as a pre-commit hook for svn create/edit hooks/pre-commit on the repository with the following contents: >>> #!/bin/sh TERM=linux export TERM CAKE=/cake/is/herex/console/cake $CAKE repo checkFiles pre-commit -q -repo $1 -txn $2 >&2 <<< Notes: on a Windows system, you should name the hook 'pre-commit.bat' or 'pre-commit.exe' You can nominate a config file (on the svn server) using the config switch: cake repo ... -config /use/this/config/file Users can override the pre-commit hook by including @noverify at the end of any line in their commit message. The svn repo can disable the @noverify flag by setting $config['disableNoverify'] in the config file Using realtime ============== To use automatically whenever you edit a file in your project, run "cake autotest" from the folder you want to be monitored. Using with screen may be convenient ("screen cake autotest") as you can then close the terminal and the process will continue to run.