Diffstat (limited to 'scripts/builder/backendBuilder.py') (more/less context) (show whitespace changes)
-rwxr-xr-x | scripts/builder/backendBuilder.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/builder/backendBuilder.py b/scripts/builder/backendBuilder.py index b4ee990..ad6595c 100755 --- a/scripts/builder/backendBuilder.py +++ b/scripts/builder/backendBuilder.py | |||
@@ -1,145 +1,148 @@ | |||
1 | #!/usr/bin/env python | 1 | #!/usr/bin/env python |
2 | # -*- coding: UTF-8 -*- | 2 | # -*- coding: UTF-8 -*- |
3 | 3 | ||
4 | import sys, os, json | 4 | import sys, os, json |
5 | import shutil | 5 | import shutil |
6 | import hashlib | 6 | import hashlib |
7 | 7 | ||
8 | from functools import reduce | 8 | from functools import reduce |
9 | from operator import add | 9 | from operator import add |
10 | from itertools import izip | 10 | from itertools import izip |
11 | 11 | ||
12 | import main | 12 | import main |
13 | 13 | ||
14 | #=================================================================== | 14 | #=================================================================== |
15 | 15 | ||
16 | class BackendBuilder(object): | 16 | class BackendBuilder(object): |
17 | 17 | ||
18 | def __init__ (self, projectTargetDir, frontends, versions, settings): | 18 | def __init__ (self, projectTargetDir, frontends, versions, settings): |
19 | self.projectTargetDir = projectTargetDir | 19 | self.projectTargetDir = projectTargetDir |
20 | self.frontends = frontends | 20 | self.frontends = frontends |
21 | self.versions = versions | 21 | self.versions = versions |
22 | self.settings = settings | 22 | self.settings = settings |
23 | 23 | ||
24 | # -------------------------------------------------------------------------- | 24 | # -------------------------------------------------------------------------- |
25 | 25 | ||
26 | def name (self): | 26 | def name (self): |
27 | raise NotImplementedError() | 27 | raise NotImplementedError() |
28 | 28 | ||
29 | 29 | ||
30 | def relativePath (self): | 30 | def relativePath (self): |
31 | raise NotImplementedError() | 31 | raise NotImplementedError() |
32 | 32 | ||
33 | 33 | ||
34 | def compileCode (self): | 34 | def compileCode (self): |
35 | raise NotImplementedError() | 35 | raise NotImplementedError() |
36 | 36 | ||
37 | 37 | ||
38 | def createPackage (self): | 38 | def createPackage (self): |
39 | raise NotImplementedError() | 39 | raise NotImplementedError() |
40 | 40 | ||
41 | # -------------------------------------------------------------------------- | 41 | # -------------------------------------------------------------------------- |
42 | 42 | ||
43 | def sourceFolder (self): | 43 | def sourceFolder (self): |
44 | return os.path.join(main.projectBaseDir() , 'backend', self.relativePath(), 'src') | 44 | return os.path.join(main.projectBaseDir() , 'backend', self.relativePath(), 'src') |
45 | 45 | ||
46 | 46 | ||
47 | def tempFolder (self): | 47 | def tempFolder (self): |
48 | return os.path.join(self.projectTargetDir, '.tmp', self.relativePath()) | 48 | return os.path.join(self.projectTargetDir, '.tmp', self.relativePath()) |
49 | 49 | ||
50 | 50 | ||
51 | def frontEndTempFolder (self): | 51 | def frontEndTempFolder (self): |
52 | return self.tempFolder() | 52 | return self.tempFolder() |
53 | 53 | ||
54 | 54 | ||
55 | def developmentTargetFolder (self): | 55 | def developmentTargetFolder (self): |
56 | return os.path.join(self.projectTargetDir, 'development') | 56 | return os.path.join(self.projectTargetDir, 'development') |
57 | 57 | ||
58 | 58 | ||
59 | def targetFolder (self): | 59 | def targetFolder (self): |
60 | return os.path.join(self.projectTargetDir, self.relativePath()) | 60 | return os.path.join(self.projectTargetDir, self.relativePath()) |
61 | 61 | ||
62 | 62 | ||
63 | # -------------------------------------------------------------------------- | 63 | # -------------------------------------------------------------------------- |
64 | 64 | ||
65 | def writeToFolder (self, folder, filename, content): | 65 | def writeToFolder (self, folder, filename, content): |
66 | file = open(os.path.join(folder, filename), 'w') | 66 | file = open(os.path.join(folder, filename), 'w') |
67 | file.write(content.encode('utf-8')) | 67 | file.write(content.encode('utf-8')) |
68 | file.close() | 68 | file.close() |
69 | 69 | ||
70 | 70 | ||
71 | def configureIndexContent (self, indexContent, requestPathPrefix = ".."): | 71 | #def configureIndexContent (self, indexContent, requestPathPrefix = ".."): |
72 | def configureIndexContent (self, indexContent): | ||
72 | result = indexContent | 73 | result = indexContent |
73 | result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] ) | 74 | # result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] ) |
75 | result = result.replace( '@request.path@', self.settings['request.path'] ) | ||
76 | result = result.replace( '@dump.path@', self.settings['dump.path'] ) | ||
74 | result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] ) | 77 | result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] ) |
75 | 78 | ||
76 | return result | 79 | return result |
77 | 80 | ||
78 | 81 | ||
79 | def formatMAC (self, value): | 82 | def formatMAC (self, value): |
80 | x = iter(value) | 83 | x = iter(value) |
81 | return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)]) | 84 | return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)]) |
82 | 85 | ||
83 | 86 | ||
84 | def logChecksums (self, content, message): | 87 | def logChecksums (self, content, message): |
85 | md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest()) | 88 | md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest()) |
86 | shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest()) | 89 | shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest()) |
87 | sha256Digest= self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest()) | 90 | sha256Digest= self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest()) |
88 | print "-----" | 91 | print "-----" |
89 | print message + ": " + md5Digest + " (md5)" | 92 | print message + ": " + md5Digest + " (md5)" |
90 | print message + ": " + shaDigest + " (sha1)" | 93 | print message + ": " + shaDigest + " (sha1)" |
91 | print message + ": " + sha256Digest + " (sha256)" | 94 | print message + ": " + sha256Digest + " (sha256)" |
92 | print "=====" | 95 | print "=====" |
93 | 96 | ||
94 | 97 | ||
95 | def shouldCompileCode (self): | 98 | def shouldCompileCode (self): |
96 | return ('debug' in self.versions) or ('install' in self.versions) | 99 | return ('debug' in self.versions) or ('install' in self.versions) |
97 | 100 | ||
98 | 101 | ||
99 | def run (self): | 102 | def run (self): |
100 | print self.name() + " - RUN" | 103 | print self.name() + " - RUN" |
101 | 104 | ||
102 | if self.shouldCompileCode(): | 105 | if self.shouldCompileCode(): |
103 | self.compileCode() | 106 | self.compileCode() |
104 | 107 | ||
105 | for frontend in self.frontends: | 108 | for frontend in self.frontends: |
106 | if (frontend.module == frontend.submodule): | 109 | if (frontend.module == frontend.submodule): |
107 | submoduleExtension = '' | 110 | submoduleExtension = '' |
108 | else: | 111 | else: |
109 | submoduleExtension = '.' + frontend.submodule | 112 | submoduleExtension = '.' + frontend.submodule |
110 | 113 | ||
111 | main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) | 114 | main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) |
112 | 115 | ||
113 | if 'debug' in self.versions: | 116 | if 'debug' in self.versions: |
114 | frontend.copyResourcesToFolder(self.frontEndTempFolder()) | 117 | frontend.copyResourcesToFolder(self.frontEndTempFolder()) |
115 | 118 | ||
116 | index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) | 119 | index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) |
117 | self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index) | 120 | self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index) |
118 | 121 | ||
119 | if 'install' in self.versions: | 122 | if 'install' in self.versions: |
120 | index = self.configureIndexContent(frontend.assemble()) | 123 | index = self.configureIndexContent(frontend.assemble()) |
121 | self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) | 124 | self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) |
122 | 125 | ||
123 | self.logChecksums(index, "[" + self.name() + " - " + frontend.module + "] index" + submoduleExtension + ".html checksum") | 126 | self.logChecksums(index, "[" + self.name() + " - " + frontend.module + "] index" + submoduleExtension + ".html checksum") |
124 | 127 | ||
125 | self.createPackage() | 128 | self.createPackage() |
126 | 129 | ||
127 | # if 'development' in self.versions: | 130 | # if 'development' in self.versions: |
128 | # for frontend in self.frontends: | 131 | # for frontend in self.frontends: |
129 | # if (frontend.module == frontend.submodule): | 132 | # if (frontend.module == frontend.submodule): |
130 | # submoduleExtension = '' | 133 | # submoduleExtension = '' |
131 | # else: | 134 | # else: |
132 | # submoduleExtension = '.' + frontend.submodule | 135 | # submoduleExtension = '.' + frontend.submodule |
133 | # | 136 | # |
134 | # print "FRONTEND module: " + frontend.module | 137 | # print "FRONTEND module: " + frontend.module |
135 | # print "FRONTEND submodule: " + frontend.submodule | 138 | # print "FRONTEND submodule: " + frontend.submodule |
136 | # | 139 | # |
137 | ## main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module)) | 140 | ## main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module)) |
138 | # main.createFolder(self.developmentTargetFolder()) | 141 | # main.createFolder(self.developmentTargetFolder()) |
139 | # | 142 | # |
140 | # index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url']) | 143 | # index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url']) |
141 | ## self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index_development' + submoduleExtension + '.html'), index) | 144 | ## self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index_development' + submoduleExtension + '.html'), index) |
142 | # self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module + submoduleExtension + '.html'), index) | 145 | # self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module + submoduleExtension + '.html'), index) |
143 | 146 | ||
144 | 147 | ||
145 | #=================================================================== | 148 | #=================================================================== |