-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
48 lines (40 loc) · 1.8 KB
/
build.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
task install(type: Copy) {
int delimiter = application.indexOf(":")
delimiter = delimiter == -1 ? application.length() : delimiter
String name = application.substring(0, delimiter)
String version = application.substring(delimiter + 1, application.length())
String tmpDir = System.properties["java.io.tmpdir"]
if (!tmpDir.endsWith(File.separator)) {
tmpDir += File.separator
}
switch (name) {
case "maven":
String zip = tmpDir + "apache-maven-${version}-bin.zip"
String url = "https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${version}/apache-maven-${version}-bin.zip"
download(zip, url)
from zipTree(zip)
String result = tmpDir + "apache-maven-${version}"
into new File(result)
println "##teamcity[buildParameter name='ci-utils.maven.path' value='${result}${File.separator}apache-maven-${version}']"
println "parameter 'ci-utils.maven.path' added"
break
case "custom":
String url = version
String fileName = url.substring( url.lastIndexOf('/')+1, url.length() )
if (fileName.contains("?")) fileName = fileName.substring(0, fileName.indexOf("?"))
String file = tmpDir + fileName
download(file, url)
println "##teamcity[buildParameter name='ci-utils.downloaded.path' value='${file}']"
println "parameter 'ci-utils.downloaded.path' added"
break
}
}
private void download(String file, String url) {
File dst = new File(file)
if (!dst.exists()) {
println "Started download ${url}"
new URL(url).withInputStream{ i -> dst.withOutputStream{ it << i }}
println "Finished download ${url}"
println "File created ${file}"
}
}