-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathbuild.gradle
More file actions
121 lines (97 loc) · 3.33 KB
/
build.gradle
File metadata and controls
121 lines (97 loc) · 3.33 KB
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
println """
******************************************
Building Galactic Science!
Output files will be in basePath/build/
******************************************
"""
import org.apache.tools.ant.filters.ReplaceTokens
version = packVersion
description = packDescription
def forgeCompatibility = packForgeCompatibility
def replaceTokenPattern = /.*\.(properties|txt|json|cfg|conf|config|xml|recipes)/
ext {
buildSources = "$buildDir/sources"
}
task buildAll(dependsOn: ['buildServer', 'buildClient', 'buildCurse'])
task compileServer(type: Copy) {
delete "$buildSources/server"
from('src') {
exclude '**/_CLIENT/**'
exclude 'manifest.json'
}
into "$buildSources/server"
eachFile { details ->
details.path = details.path.replaceAll('_SERVER', '');
if (details.getName() ==~ replaceTokenPattern) {
filter(ReplaceTokens, tokens: project.properties.collectEntries { k, v -> [k, v ?: ''] })
}
}
includeEmptyDirs = false
}
task compileClient(type: Copy) {
delete "$buildSources/client"
from('src') {
exclude '**/_SERVER/**'
exclude 'manifest.json'
}
into "$buildSources/client"
eachFile { details ->
details.path = details.path.replaceAll('_CLIENT', '');
if (details.getName() ==~ replaceTokenPattern) {
filter(ReplaceTokens, tokens: project.properties.collectEntries { k, v -> [k, v ?: ''] })
}
}
includeEmptyDirs = false
}
task compileCurse(type: Copy) {
delete "$buildSources/curse"
copy {
from('src') {
exclude '**/_SERVER/**'
exclude '_CLIENT/bin'
exclude 'manifest.json'
}
into "$buildSources/curse/overrides"
eachFile { details ->
details.path = details.path.replaceAll('_CLIENT', '');
if (details.getName() ==~ replaceTokenPattern) {
filter(ReplaceTokens, tokens: project.properties.collectEntries { k, v -> [k, v ?: ''] })
}
if (details.getPath().startsWith('mods/')) {
def includeMods = project.unavailableCurseMods.split(',')
def exclude = true
for(mod in includeMods) {
if (details.getName() ==~ /${mod}/) {
exclude = false
}
}
if (exclude) {
details.exclude()
}
}
}
includeEmptyDirs = false
}
copy {
from('src') {
include 'manifest.json'
filter(ReplaceTokens, tokens: project.properties.collectEntries { k, v -> [k, v ?: ''] })
}
into "$buildSources/curse"
}
}
task buildServer(type: Zip, dependsOn: ['compileServer']) {
archiveFileName = "${project.name}_${project.version}_Server.zip"
destinationDirectory = file("$buildDir")
from "$buildSources/server"
}
task buildClient(type: Zip, dependsOn: ['compileClient']) {
archiveFileName = "${project.name}_${project.version}_Client.zip"
destinationDirectory = file("$buildDir")
from "$buildSources/client"
}
task buildCurse(type: Zip, dependsOn: ['compileCurse']) {
archiveFileName = "${project.name}_${project.version}_CurseProfile.zip"
destinationDirectory = file("$buildDir")
from "$buildSources/curse"
}