GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / src / web / org / codehaus / groovy / grails / web / servlet / filter / GrailsResourceCopier.groovy
blob44caad1c0d88a98009f1fec13ae3210f830d8c40
1 package org.codehaus.groovy.grails.web.servlet.filter;
2 class GrailsResourceCopier implements ResourceCopier {
4 String basedir = "."
5 String destdir = "./web-app"
8 public void cleanControllers() {
9 def ant = new AntBuilder()
10 if(new File("${basedir}/grails-app/controllers").exists()) {
11 ant.delete {
12 fileset(dir:"${destdir}/WEB-INF/grails-app/controllers",includes:"*.groovy")
14 ant.copy(todir:"${destdir}/WEB-INF/grails-app/controllers",failonerror:false) {
15 fileset(dir:"${basedir}/grails-app/controllers",includes:"**")
20 public void copyGrailsApp() {
21 def ant = new AntBuilder()
22 if(new File("${basedir}/grails-app").exists()) {
23 ant.copy(todir:"${destdir}/WEB-INF/grails-app",failonerror:false) {
24 fileset(dir:"${basedir}/grails-app",includes:"**")
29 public void copyViews(boolean shouldOverwrite) {
30 def ant = new AntBuilder()
31 if(new File("${basedir}/grails-app/views").exists()) {
32 ant.copy(todir:"${destdir}/WEB-INF/grails-app/views",failonerror:false,overwrite:shouldOverwrite) {
33 fileset(dir:"${basedir}/grails-app/views",includes:"**")
38 public void copyViews() {
39 def ant = new AntBuilder()
40 if(new File("${basedir}/grails-app/views").exists()) {
41 ant.copy(todir:"${destdir}/WEB-INF/grails-app/views",failonerror:false) {
42 fileset(dir:"${basedir}/grails-app/views",includes:"**")
47 public void copyResourceBundles() {
48 def ant = new AntBuilder()
49 if(new File("${basedir}/grails-app/i18n").exists()) {
50 ant.native2ascii(src:"${basedir}/grails-app/i18n",
51 dest:"${destdir}/WEB-INF/grails-app/i18n",
52 includes:"*.properties",
53 encoding:"UTF-8")
57 public void generateWebXml() {
58 def controllersHome = new File("${basedir}/grails-app/controllers")
59 if(controllersHome.exists()) {
60 println "base directory exists re-creating web.xml"
61 def controllers = []
62 def flows = []
63 controllersHome.eachFileRecurse {
64 def match = it.name =~ "(\\w+)(Controller.groovy\$)"
65 if(match) {
66 def controllerName = match[0][1]
67 controllerName = controllerName[0].toLowerCase() + controllerName[1..-1]
68 controllers << controllerName
70 match = it.name =~ "(\\w+)(PageFlow.groovy\$)"
71 if(match) {
72 def flowName = match[0][1]
73 flowName = flowName[0].toLowerCase() + flowName[1..-1]
74 flows << flowName
77 def binding = [ "controllers" : controllers,
78 "flows" : flows,
79 "basedir" : "${basedir}",
80 "destdir" : "${basedir}",
81 "dev" : true ]
82 def engine = new groovy.text.SimpleTemplateEngine()
83 def template = engine.createTemplate( new File("${basedir}/web-app/WEB-INF/web.template.xml" ).text ).make(binding)
85 new File("${destdir}/WEB-INF/web.xml" ).write( template.toString() )