Skip to content

Commit a374367

Browse files
authored
Merge pull request #210 from divino/issue-194
Issue 194
2 parents 503a439 + 0a1491a commit a374367

File tree

3 files changed

+47
-3
lines changed

3 files changed

+47
-3
lines changed

build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ plugins {
44
id "eclipse"
55
id "idea"
66
id "com.jfrog.bintray" version "1.6"
7-
id "com.github.jk1.dependency-license-report" version "0.3.11"
8-
id "com.gradle.plugin-publish" version "0.9.7"
7+
id "com.github.jk1.dependency-license-report" version "0.3.11"
8+
id "com.gradle.plugin-publish" version "0.9.7"
99
}
1010

1111
sourceCompatibility = "1.7"
@@ -21,6 +21,7 @@ dependencies {
2121
compile localGroovy()
2222
compile mlAppDeployerDependency
2323
compile mlcpUtilDependency
24+
compile group: 'commons-io', name: 'commons-io', version: '2.5'
2425
}
2526

2627
task sourcesJar(type: Jar, dependsOn: classes) {
@@ -78,4 +79,4 @@ pluginBundle {
7879
mavenCoordinates {
7980
version = "2.8.0"
8081
}
81-
}
82+
}

src/main/groovy/com/marklogic/gradle/MarkLogicPlugin.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import com.marklogic.gradle.task.groups.SetTraceEventsTask
3333
import com.marklogic.gradle.task.mimetypes.DeployMimetypesTask
3434
import com.marklogic.gradle.task.qconsole.ExportWorkspacesTask
3535
import com.marklogic.gradle.task.qconsole.ImportWorkspacesTask
36+
import com.marklogic.gradle.task.roxy.RoxyCopyFilesTask
3637
import com.marklogic.gradle.task.roxy.RoxyCopyPropertiesTask
3738
import com.marklogic.gradle.task.scaffold.GenerateScaffoldTask
3839
import com.marklogic.gradle.task.schemas.LoadSchemasTask
@@ -210,6 +211,7 @@ class MarkLogicPlugin implements Plugin<Project> {
210211

211212
String roxyGroup = "ml-gradle Roxy";
212213
project.task("mlRoxyCopyProperties", type: RoxyCopyPropertiesTask, group: roxyGroup, description: "Copy Roxy properties to gradle.properties file")
214+
project.task("mlRoxyCopyFiles", type: RoxyCopyFilesTask, group: roxyGroup, description: "Copy roxy files")
213215

214216
logger.info("Finished initializing ml-gradle\n")
215217
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.marklogic.gradle.task.roxy
2+
3+
import com.marklogic.gradle.task.MarkLogicTask
4+
import org.apache.commons.io.FileUtils
5+
import org.gradle.api.tasks.TaskAction
6+
7+
class RoxyCopyFilesTask extends MarkLogicTask {
8+
9+
def roxyFolderMapping = [
10+
"src" : "/root",
11+
"rest-api/config" : "/options",
12+
"rest-api/ext" : "/services",
13+
"rest-api/transforms" : "/transforms"
14+
]
15+
16+
@TaskAction
17+
void copyRoxyFiles() {
18+
if (getRoxyHome()) {
19+
def baseDir = getAppConfig().getModulePaths().get(0)
20+
roxyFolderMapping.each { k, v ->
21+
def source = getRoxyHome() + "/" + k
22+
println "Source folder '" + source + "' ... "
23+
def sourceFolder = new File(source)
24+
if (sourceFolder.exists() && sourceFolder.isDirectory()) {
25+
def targetDir = baseDir + v
26+
println "Creating folder '" + targetDir + "' ... "
27+
def targetFolder = new File(targetDir)
28+
FileUtils.forceMkdir(targetFolder)
29+
println "Copying contents of '" + source + "' to '" + targetDir + "' ... "
30+
FileUtils.copyDirectory(sourceFolder, targetFolder)
31+
}
32+
}
33+
} else {
34+
println "mlRoxyHome parameter is not provided. Please run using -PmlRoxyHome=/your/roxy/project/home"
35+
}
36+
}
37+
38+
String getRoxyHome(){
39+
project.hasProperty("mlRoxyHome") ? project.property("mlRoxyHome") : ""
40+
}
41+
}

0 commit comments

Comments
 (0)