Group.groovy

package edu.odu.cs.cowem


import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.Copy


import edu.odu.cs.cowem.DocumentSet

/**
 * A plugin for describing a group of document sets that can
 * share commons defaults & policies. 
 * 
 */
class Group implements Plugin<Project> {

    Group() {
    }
    
	void apply (Project project) {
        
		project.subprojects {
            // Add a DocumentSet object as a property of the project
            if (!it.hasProperty('documents')) {
                //println ("Adding documents config to " + it.name)
                it.extensions.create ('documents', DocumentSet, it)
            }
        }
        
        project.task ("setup", type: Copy) {
            from project.projectDir
            into new File(project.rootDir, 'build/website/' + project.name)
            include ('*.*')
            exclude ('build.gradle')
        } .doLast {
            File groupIndex = new File(project.rootDir, 'build/website/' 
                + project.name + '/' + 'index.html')
            if (!groupIndex.exists()) {
                groupIndex.withWriter('UTF-8') {
                    it.writeLine('<html><body>' + project.name + '</body></html>')
                }
            }
        }
        
        project.task ("build", dependsOn: 'setup')
        
        project.rootProject.tasks['build'].dependsOn(project.setup)

	}

}