summaryrefslogtreecommitdiff
path: root/scripts/builder/backendBuilder.py
Unidiff
Diffstat (limited to 'scripts/builder/backendBuilder.py') (more/less context) (show whitespace changes)
-rwxr-xr-xscripts/builder/backendBuilder.py7
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
4import sys, os, json 4import sys, os, json
5import shutil 5import shutil
6import hashlib 6import hashlib
7 7
8from functools import reduce 8from functools import reduce
9from operator import add 9from operator import add
10from itertools import izip 10from itertools import izip
11 11
12import main 12import main
13 13
14#=================================================================== 14#===================================================================
15 15
16class BackendBuilder(object): 16class 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#===================================================================