-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
83 lines (71 loc) · 2.34 KB
/
Copy pathbuild.gradle
File metadata and controls
83 lines (71 loc) · 2.34 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
apply plugin: 'netkernel'
nkRepositories {
packageDownloadStore = 'external/packages'
defineRepository (baseUrl: 'http://apposite.netkernel.org/repo',
path: '1060-NetKernel-SE/4.1.1',
set: 'main')
defineRepository (baseUrl: 'http://www.netkernelroc.org/repositoryServer',
path: 'stable',
set: 'main')
definePackage (name: 'xml-saxon')
definePackage (name: 'netkernelroc-liquibase')
definePackage (name: 'netkernelroc-layer2')
}
boolean isNetKernelRunning() {
try {
def hostname = "localhost:1060"
def nkControlPanel = "panel/urn:org:netkernel:nkse:control:panel:home"
def url = new URL("http://${hostname}/${nkControlPanel}")
def connection = url.openConnection()
return (connection.getResponseCode() == 200)
} catch (Exception e) {
return false
}
}
boolean isNetKernelInstalled() {
return new File(netKernelInstallPath).exists()
}
void doNetKernelInstall() {
File nkJar = new File("external/1060-NetKernel-EE.jar")
javaexec {
main = "-jar"
args = [ relativePath(nkJar) ]
systemProperties = [ "unattended.install.directory": new File(netKernelInstallPath),
"unattended.install.expand": true ]
}
}
void registerModule(File moduleFile) {
def moduleName = moduleFile.toURI().toASCIIString()
def modulesFile = new File(netKernelInstallPath, "etc/modules.xml")
def slurper = new XmlSlurper()
slurper.setKeepWhitespace(true)
def modules = slurper.parse(modulesFile)
def existingModule = modules.module.find { it == moduleName }
if (!existingModule) {
modules.appendNode {
module(moduleName, runLevel: "7")
}
def builder = new groovy.xml.StreamingMarkupBuilder()
String built = builder.bind { mkp.yield modules }
modulesFile.write(built)
}
}
task installNetKernel << {
if (isNetKernelInstalled()) {
println "NetKernel is already installed"
} else {
doNetKernelInstall()
}
}
task registerModules(dependsOn: installNetKernel) << {
registerModule(new File("external/urn.org.netkernelroc.mod.liquibase.jar"))
}
task runNetKernel(dependsOn: registerModules) << {
if (isNetKernelRunning()) {
println "NetKernel is already running"
} else {
exec {
commandLine = [new File(netKernelInstallPath, "bin/netkernel.sh")]
}
}
}