// start from inside samples dir // consts in binding CMD = 'cmd /c ' // todo: make this os-aware APP_NAME = 'myapp' BO_NAME = 'mydomain' ANT = new AntBuilder() ANT.delete(dir:APP_NAME, quiet:true) console('grails create-app', APP_NAME) appConsole('grails create-domain-class', BO_NAME) // do something to domain class here... appConsole('grails generate-all', BO_NAME) // unit testing, building etc. here? appConsole('grails create-webtest', '') appConsole('grails generate-webtest', BO_NAME) // start the jetty server as external process // or rely on tomcat hot deployment appConsole('grails run-webtest', BO_NAME) // --------- implementation methods ----------- void appConsole(String command, String input){ console "cd $APP_NAME && " + command , input } void console(String command, String input) { def proc = (CMD + command).execute() Thread.start { System.out << proc.in } Thread.start { System.err << proc.err } proc << input + "\n" proc.out.close() proc.waitForOrKill(0) }