/
publishToConfluence.gradle
79 lines (74 loc) · 2.96 KB
/
publishToConfluence.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
buildscript {
repositories {
maven {
credentials {
username mavenUsername
password mavenPassword
}
url mavenRepository
}
}
dependencies {
if (file("libs/org/docToolchain/core-${project.properties.dtc_version}.jar").exists()) {
classpath files("libs/org/docToolchain/core-${project.properties.dtc_version}.jar")
} else {
classpath("org.docToolchain:core")
}
}
}
import org.docToolchain.tasks.VerifyConfluenceApiAccessTask
import org.docToolchain.tasks.WipeConfluenceSpaceTask
//tag::verifyConfluenceApiAccess[]
task verifyConfluenceApiAccess(
description: 'verifies confluence API URL and credentials are set correctly',
group: 'docToolchain'
) {
doLast {
//TODO default should be false, if the V1 has been removed in cloud
config.confluence.useV1Api = findProperty("confluence.useV1Api") != null ?
findProperty("confluence.useV1Api") : config.confluence.useV1Api != [:] ?
config.confluence.useV1Api :true
new VerifyConfluenceApiAccessTask(config).execute()
}
}
//end::verifyConfluenceApiAccess[]
//tag::wipeConfluenceSpace[]
task wipeConfluenceSpace(
description: 'deletes all pages in the configured confluence space',
group: 'docToolchain'
) {
doLast {
ant.input(message: "${'Do you really want to delete all pages in ' + config.confluence.spaceKey}", validargs: 'y,n', addproperty: 'confirm')
if(ant.confirm.toBoolean()) {
//TODO default should be false, if the V1 has been removed in cloud
config.confluence.useV1Api = findProperty("confluence.useV1Api") != null ?
findProperty("confluence.useV1Api") : config.confluence.useV1Api != [:] ?
config.confluence.useV1Api :true
new WipeConfluenceSpaceTask(config).execute()
} else {
println("Aborting wipe confluence space, this task needs to be confirmed with 'y'")
}
}
}
//end::wipeConfluenceSpace[]
//tag::publishToConfluence[]
task publishToConfluence(
description: 'publishes the HTML rendered output to confluence',
group: 'docToolchain'
) {
doLast {
logger.info("docToolchain> docDir: "+docDir)
config.confluence.api = findProperty("confluence.api")?:config.confluence.api
//TODO default should be false, if the V1 has been removed in cloud
config.confluence.useV1Api = findProperty("confluence.useV1Api") != null ?
findProperty("confluence.useV1Api") : config.confluence.useV1Api != [:] ?
config.confluence.useV1Api :true
binding.setProperty('config',config)
binding.setProperty('docDir',docDir)
evaluate(new File(projectDir, 'core/src/main/groovy/org/docToolchain/scripts/asciidoc2confluence.groovy'))
}
}
//end::publishToConfluence[]
project.afterEvaluate {
project.tasks.publishToConfluence.dependsOn generateHTML
}