-
Notifications
You must be signed in to change notification settings - Fork 10
/
docs.gradle
124 lines (110 loc) · 4.14 KB
/
docs.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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
apply plugin: 'com.github.node-gradle.node'
apply plugin: 'de.undercouch.download'
node {
version = '20.10.0'
yarnVersion = 'berry'
download = project.findProperty('downloadNode') != 'false' ?: false
}
ext {
workingDir = new File(project.buildDir, 'markdown').absolutePath
cliVersion = 'v3.0.0'
editorVersion = 'v1.0.0'
}
def docsDownload(List<String> files, File targetDir, Closure<?> process = null) {
download.run {
src files
dest targetDir
onlyIfModified true
useETag "all"
if (process != null) {
eachFile process
}
}
}
tasks.register('docsAssembleCli') {
doLast {
def baseUrl = "https://raw.githubusercontent.com/interactive-instruments/xtraplatform-cli/${cliVersion}"
def files = ["${baseUrl}/xtractl/README.md", "${baseUrl}/xtractl/COMMANDS.md", "${baseUrl}/xtracfg/README.md", "${baseUrl}/xtracfg/COMMANDS.md"]
def filesDe = ["${baseUrl}/xtractl/README_DE.md", "${baseUrl}/xtractl/COMMANDS.md", "${baseUrl}/xtracfg/README_DE.md", "${baseUrl}/xtracfg/COMMANDS.md"]
def targetDir = new File(project.buildDir, 'tmp/tools/tools')
def targetDirDe = new File(project.buildDir, 'tmp/tools/de/tools')
def process = { f ->
def name = f.path == "README_DE.md" ? "README.md" : f.path
if (f.sourceURL.path.contains('xtractl')) {
f.path = "xtractl/${name}"
} else if (f.sourceURL.path.contains('xtracfg')) {
f.path = "xtracfg/${name}"
}
}
docsDownload(files, targetDir, process)
docsDownload(filesDe, targetDirDe, process)
}
}
tasks.register('docsAssembleEditor') {
doLast {
def baseUrl = "https://raw.githubusercontent.com/ldproxy/editor/${editorVersion}"
def targetDir = new File(project.buildDir, 'tmp/tools/tools')
def targetDirDe = new File(project.buildDir, 'tmp/tools/de/tools')
def files = ["${baseUrl}/README.md", "${baseUrl}/screenshot.png", "${baseUrl}/screenshot2.png"]
def filesDe = ["${baseUrl}/README_DE.md", "${baseUrl}/screenshot.png", "${baseUrl}/screenshot2.png"]
def process = { f ->
def name = f.path == "README_DE.md" ? "README.md" : f.path
f.path = "editor/${name}"
}
docsDownload(files, targetDir, process)
docsDownload(filesDe, targetDirDe, process)
}
}
tasks.register('docsAssemble', Sync) {
dependsOn tasks.named("docsAssembleCli")
dependsOn tasks.named("docsAssembleEditor")
finalizedBy tasks.named('markdownAssemble')
from(file('src/markdown/docs')) {
exclude 'en'
}
from file('src/markdown/docs/en')
from new File(project.buildDir, 'tmp/tools')
from tasks.named('docsExtract')
into new File(project.buildDir, 'markdown/docs')
//duplicatesStrategy = 'INCLUDE'
}
tasks.register('markdownAssemble', Copy) {
from file('src/markdown')
into new File(project.buildDir, 'markdown')
include "*.*"
include ".yarn/releases/*.*"
}
yarn_install {
dependsOn tasks.named("docsAssemble")
dependsOn tasks.named("markdownAssemble")
inputs.file("${project.workingDir}/package.json")
inputs.file("${project.workingDir}/yarn.lock")
outputs.dir("${project.workingDir}/node_modules")
outputs.dir("${project.workingDir}/.yarn/cache")
execOverrides {
it.workingDir = project.workingDir
}
}
task docsVuepress(type: YarnTask) {
dependsOn yarn_install
inputs.file("${project.workingDir}/package.json")
inputs.file("${project.workingDir}/yarn.lock")
inputs.dir("${project.workingDir}/docs")
outputs.dir("${project.workingDir}/docs/.vuepress/dist")
execOverrides {
it.workingDir = project.workingDir
}
args = ['run', 'docs:build']
}
task docsVuepressDev(type: YarnTask) {
dependsOn yarn_install
inputs.file("${project.workingDir}/package.json")
inputs.file("${project.workingDir}/yarn.lock")
inputs.dir("${project.workingDir}/docs")
outputs.upToDateWhen { false }
execOverrides {
it.workingDir = project.workingDir
}
environment = ['DOCS_VERSION': 'next']
args = ['run', 'docs:dev']
}