summaryrefslogtreecommitdiff
path: root/scripts/builder/backendBuilder.py
Unidiff
Diffstat (limited to 'scripts/builder/backendBuilder.py') (more/less context) (show whitespace changes)
-rw-r--r--scripts/builder/backendBuilder.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/scripts/builder/backendBuilder.py b/scripts/builder/backendBuilder.py
index 5b91678..36b28ca 100644
--- a/scripts/builder/backendBuilder.py
+++ b/scripts/builder/backendBuilder.py
@@ -1,81 +1,82 @@
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
8import main 8import main
9 9
10#=================================================================== 10#===================================================================
11 11
12
13class BackendBuilder(object): 12class BackendBuilder(object):
14 13
15 def __init__ (self, projectTargetDir, frontends, versions, settings): 14 def __init__ (self, projectTargetDir, frontends, versions, settings):
16 self.projectTargetDir = projectTargetDir 15 self.projectTargetDir = projectTargetDir
17 self.frontends = frontends 16 self.frontends = frontends
18 self.versions = versions 17 self.versions = versions
19 self.settings = settings 18 self.settings = settings
20 19
21 # -------------------------------------------------------------------------- 20 # --------------------------------------------------------------------------
22 21
23 def name (self): 22 def name (self):
24 raise NotImplementedError() 23 raise NotImplementedError()
25 24
26 25
27 def relativePath (self): 26 def relativePath (self):
28 raise NotImplementedError() 27 raise NotImplementedError()
29 28
30 29
31 def compileCode (self): 30 def compileCode (self):
32 raise NotImplementedError() 31 raise NotImplementedError()
33 32
34 33
35 def createPackage (self): 34 def createPackage (self):
36 raise NotImplementedError() 35 raise NotImplementedError()
37 36
38 # -------------------------------------------------------------------------- 37 # --------------------------------------------------------------------------
39 38
40 def sourceFolder (self): 39 def sourceFolder (self):
41 return os.path.join(main.projectBaseDir() , 'backend', self.relativePath(), 'src') 40 return os.path.join(main.projectBaseDir() , 'backend', self.relativePath(), 'src')
42 41
43 42
44 def tempFolder (self): 43 def tempFolder (self):
45 return os.path.join(self.projectTargetDir, '.tmp', self.relativePath()) 44 return os.path.join(self.projectTargetDir, '.tmp', self.relativePath())
46 45
47 46
48 def frontEndTempFolder (self): 47 def frontEndTempFolder (self):
49 return self.tempFolder() 48 return self.tempFolder()
50 49
51 50
52 def developmentTargetFolder (self): 51 def developmentTargetFolder (self):
53 return os.path.join(self.projectTargetDir, 'development', self.relativePath()) 52 return os.path.join(self.projectTargetDir, 'development')
53
54 54
55 def targetFolder (self): 55 def targetFolder (self):
56 return os.path.join(self.projectTargetDir, self.relativePath()) 56 return os.path.join(self.projectTargetDir, self.relativePath())
57 57
58
58 # -------------------------------------------------------------------------- 59 # --------------------------------------------------------------------------
59 60
60 def writeToFolder (self, folder, filename, content): 61 def writeToFolder (self, folder, filename, content):
61 file = open(os.path.join(folder, filename), 'w') 62 file = open(os.path.join(folder, filename), 'w')
62 file.write(content.encode('utf-8')) 63 file.write(content.encode('utf-8'))
63 file.close() 64 file.close()
64 65
65 66
66 def configureIndexContent (self, indexContent, requestPathPrefix = ".."): 67 def configureIndexContent (self, indexContent, requestPathPrefix = ".."):
67 result = indexContent 68 result = indexContent
68 result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] ) 69 result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] )
69 result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] ) 70 result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] )
70 71
71 return result 72 return result
72 73
73 74
74 def logChecksums (self, content, message): 75 def logChecksums (self, content, message):
75 md5Digest = hashlib.md5(content.encode('utf-8')).hexdigest() 76 md5Digest = hashlib.md5(content.encode('utf-8')).hexdigest()
76 shaDigest = hashlib.sha1(content.encode('utf-8')).hexdigest() 77 shaDigest = hashlib.sha1(content.encode('utf-8')).hexdigest()
77 sha256Digest= hashlib.sha256(content.encode('utf-8')).hexdigest() 78 sha256Digest= hashlib.sha256(content.encode('utf-8')).hexdigest()
78 print message + ": " + md5Digest + " (md5)" 79 print message + ": " + md5Digest + " (md5)"
79 print message + ": " + shaDigest + " (sha1)" 80 print message + ": " + shaDigest + " (sha1)"
80 print message + ": " + sha256Digest + " (sha256)" 81 print message + ": " + sha256Digest + " (sha256)"
81 82
@@ -91,41 +92,43 @@ class BackendBuilder(object):
91 self.compileCode() 92 self.compileCode()
92 93
93 for frontend in self.frontends: 94 for frontend in self.frontends:
94 if (frontend.module == frontend.submodule): 95 if (frontend.module == frontend.submodule):
95 submoduleExtension = '' 96 submoduleExtension = ''
96 else: 97 else:
97 submoduleExtension = '.' + frontend.submodule 98 submoduleExtension = '.' + frontend.submodule
98 99
99 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) 100 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module))
100 101
101 if 'debug' in self.versions: 102 if 'debug' in self.versions:
102 frontend.copyResourcesToFolder(self.frontEndTempFolder()) 103 frontend.copyResourcesToFolder(self.frontEndTempFolder())
103 104
104 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) 105 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG'))
105 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index) 106 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index)
106 107
107 if 'install' in self.versions: 108 if 'install' in self.versions:
108 index = self.configureIndexContent(frontend.assemble()) 109 index = self.configureIndexContent(frontend.assemble())
109 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) 110 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
110 111
111 self.logChecksums(index, "[" + self.name() + " - " + frontend.module + "] index" + submoduleExtension + ".html checksum") 112 self.logChecksums(index, "[" + self.name() + " - " + frontend.module + "] index" + submoduleExtension + ".html checksum")
112 113
113 self.createPackage() 114 self.createPackage()
114 115
115 if 'development' in self.versions: 116 # if 'development' in self.versions:
116 for frontend in self.frontends: 117 # for frontend in self.frontends:
117 if (frontend.module == frontend.submodule): 118 # if (frontend.module == frontend.submodule):
118 submoduleExtension = '' 119 # submoduleExtension = ''
119 else: 120 # else:
120 submoduleExtension = '.' + frontend.submodule 121 # submoduleExtension = '.' + frontend.submodule
121 122#
122 print "FRONTEND module: " + frontend.module 123 # print "FRONTEND module: " + frontend.module
123 print "FRONTEND submodule: " + frontend.submodule 124 # print "FRONTEND submodule: " + frontend.submodule
124 125#
125 main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module)) 126 ## main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module))
126 127 # main.createFolder(self.developmentTargetFolder())
127 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url']) 128#
128 self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) 129 # index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url'])
130 ## self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index_development' + submoduleExtension + '.html'), index)
131 # self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module + submoduleExtension + '.html'), index)
129 132
130 133
131#=================================================================== 134#===================================================================