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
|
import os
import ssjb
# settings
GroupId = "cuchaz"
ProjectName = "enigma"
Version = "0.6b"
Author = "Cuchaz"
DirBin = "bin"
DirBuild = "build"
DirTemp = os.path.join(DirBuild, "tmp")
PathLocalMavenRepo = "../maven"
def getJarFullName(name=None) :
if name is not None:
return "%s-%s-%s.jar" % (ProjectName, name, Version)
else:
return "%s-%s.jar" % (ProjectName, Version)
def buildJar():
os.makedirs(DirTemp)
ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin))
# TODO: teach ssjb where to find ivy jars
ssjb.unpackJars(DirTemp, "ivy/bundles", recursive=True)
ssjb.unpackJars(DirTemp, "ivy/jars", recursive=True)
ssjb.unpackJars(DirTemp, "libs", recursive=True)
ssjb.delete(os.path.join(DirTemp, "LICENSE.txt"))
ssjb.delete(os.path.join(DirTemp, "META-INF/maven"))
ssjb.copyFile(DirTemp, "license.APL2.txt")
ssjb.copyFile(DirTemp, "license.GPL3.txt")
ssjb.copyFile(DirTemp, "readme.txt")
manifest = ssjb.buildManifest(ProjectName, Version, Author, "cuchaz.enigma.Main")
pathJar = os.path.join(DirBuild, getJarFullName())
ssjb.jar(pathJar, DirTemp, manifest=manifest)
ssjb.delete(DirTemp)
ssjb.deployJarToLocalMavenRepo(
PathLocalMavenRepo,
pathJar,
"%s:%s:%s" % (GroupId, ProjectName, Version)
)
def taskMain():
ssjb.delete(DirBuild)
os.makedirs(DirBuild)
buildJar()
def makeTestJar(name, glob):
pathJar = os.path.join(DirBuild, "%s.jar" % name)
pathObfJar = os.path.join(DirBuild, "%s.obf.jar" % name)
# build the deobf jar
ssjb.delete(DirTemp)
os.makedirs(DirTemp)
ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, "cuchaz/enigma/inputs/Keep.class"))
ssjb.copyFiles(DirTemp, DirBin, ssjb.findFiles(DirBin, glob))
ssjb.jar(pathJar, DirTemp)
ssjb.delete(DirTemp)
# build the obf jar
ssjb.callJavaJar("libs/proguard.jar", ["@proguard.conf", "-injars", pathJar, "-outjars", pathObfJar])
def taskBuildTestJars():
makeTestJar("testLoneClass", "cuchaz/enigma/inputs/loneClass/*.class")
makeTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class")
makeTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
makeTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
ssjb.registerTask("main", taskMain)
ssjb.registerTask("buildTestJars", taskBuildTestJars)
ssjb.run()
|