summaryrefslogtreecommitdiff
path: root/scripts
Unidiff
Diffstat (limited to 'scripts') (more/less context) (ignore whitespace changes)
-rwxr-xr-x[-rw-r--r--]scripts/builder/backendBuilder.py2
-rwxr-xr-xscripts/builder/backends/checksumBuilder.py50
-rwxr-xr-x[-rw-r--r--]scripts/builder/backends/devBuilder.py8
-rwxr-xr-xscripts/builder/main.py7
-rwxr-xr-x[-rw-r--r--]scripts/builder/repository.py0
5 files changed, 58 insertions, 9 deletions
diff --git a/scripts/builder/backendBuilder.py b/scripts/builder/backendBuilder.py
index 20b4bd0..b4ee990 100644..100755
--- a/scripts/builder/backendBuilder.py
+++ b/scripts/builder/backendBuilder.py
@@ -64,51 +64,53 @@ class BackendBuilder(object):
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 result = indexContent 72 result = indexContent
73 result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] ) 73 result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] )
74 result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] ) 74 result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] )
75 75
76 return result 76 return result
77 77
78 78
79 def formatMAC (self, value): 79 def formatMAC (self, value):
80 x = iter(value) 80 x = iter(value)
81 return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)]) 81 return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)])
82 82
83 83
84 def logChecksums (self, content, message): 84 def logChecksums (self, content, message):
85 md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest()) 85 md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest())
86 shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest()) 86 shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest())
87 sha256Digest= self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest()) 87 sha256Digest= self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest())
88 print "-----"
88 print message + ": " + md5Digest + " (md5)" 89 print message + ": " + md5Digest + " (md5)"
89 print message + ": " + shaDigest + " (sha1)" 90 print message + ": " + shaDigest + " (sha1)"
90 print message + ": " + sha256Digest + " (sha256)" 91 print message + ": " + sha256Digest + " (sha256)"
92 print "====="
91 93
92 94
93 def shouldCompileCode (self): 95 def shouldCompileCode (self):
94 return ('debug' in self.versions) or ('install' in self.versions) 96 return ('debug' in self.versions) or ('install' in self.versions)
95 97
96 98
97 def run (self): 99 def run (self):
98 print self.name() + " - RUN" 100 print self.name() + " - RUN"
99 101
100 if self.shouldCompileCode(): 102 if self.shouldCompileCode():
101 self.compileCode() 103 self.compileCode()
102 104
103 for frontend in self.frontends: 105 for frontend in self.frontends:
104 if (frontend.module == frontend.submodule): 106 if (frontend.module == frontend.submodule):
105 submoduleExtension = '' 107 submoduleExtension = ''
106 else: 108 else:
107 submoduleExtension = '.' + frontend.submodule 109 submoduleExtension = '.' + frontend.submodule
108 110
109 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) 111 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module))
110 112
111 if 'debug' in self.versions: 113 if 'debug' in self.versions:
112 frontend.copyResourcesToFolder(self.frontEndTempFolder()) 114 frontend.copyResourcesToFolder(self.frontEndTempFolder())
113 115
114 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) 116 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG'))
diff --git a/scripts/builder/backends/checksumBuilder.py b/scripts/builder/backends/checksumBuilder.py
new file mode 100755
index 0000000..5f44c8a
--- a/dev/null
+++ b/scripts/builder/backends/checksumBuilder.py
@@ -0,0 +1,50 @@
1#!/usr/bin/env python
2# -*- coding: UTF-8 -*-
3
4import os
5import shutil
6import subprocess
7import main
8
9from backendBuilder import BackendBuilder
10
11class ChecksumBuilder(BackendBuilder):
12
13 def name(self):
14 return "Checksum builder"
15
16
17 def relativePath(self):
18 return 'checksum'
19
20
21 def compileCode (self):
22 pass
23
24
25 def createPackage (self):
26 src = self.tempFolder()
27 dst = self.targetFolder()
28
29 shutil.copytree(src, dst)
30
31
32 def run (self):
33 print self.name() + " - RUN (checksum)"
34
35 for frontend in self.frontends:
36 if (frontend.module == frontend.submodule):
37 submoduleExtension = ''
38 else:
39 submoduleExtension = '.' + frontend.submodule
40
41 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module))
42
43 index = self.configureIndexContent(frontend.assemble())
44 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
45 self.logChecksums(index, "[" + self.name() + " - " + frontend.module + "] index" + submoduleExtension + ".html checksum")
46 print ""
47
48 self.createPackage()
49
50
diff --git a/scripts/builder/backends/devBuilder.py b/scripts/builder/backends/devBuilder.py
index 671765e..354e014 100644..100755
--- a/scripts/builder/backends/devBuilder.py
+++ b/scripts/builder/backends/devBuilder.py
@@ -1,52 +1,44 @@
1#!/usr/bin/env python 1#!/usr/bin/env python
2# -*- coding: UTF-8 -*- 2# -*- coding: UTF-8 -*-
3 3
4import os 4import os
5import shutil 5import shutil
6import subprocess 6import subprocess
7import main 7import main
8 8
9from backendBuilder import BackendBuilder 9from backendBuilder import BackendBuilder
10 10
11class DevBuilder(BackendBuilder): 11class DevBuilder(BackendBuilder):
12 12
13 def name(self): 13 def name(self):
14 return "Dev builder" 14 return "Dev builder"
15 15
16 16
17 def relativePath(self): 17 def relativePath(self):
18 return 'dev' 18 return 'dev'
19 19
20 20
21 #def frontEndTempFolder (self):
22 # return os.path.join(self.tempFolder(), 'src', 'main', 'webapp')
23
24
25 #def targetFolder (self):
26 # return self.projectTargetDir
27
28
29 def compileCode (self): 21 def compileCode (self):
30 pass 22 pass
31 23
32 24
33 def createPackage (self): 25 def createPackage (self):
34 src = self.tempFolder() 26 src = self.tempFolder()
35 dst = self.targetFolder() 27 dst = self.targetFolder()
36 28
37 shutil.copytree(src, dst) 29 shutil.copytree(src, dst)
38 30
39 31
40 def run (self): 32 def run (self):
41 print self.name() + " - RUN (dev)" 33 print self.name() + " - RUN (dev)"
42 34
43 for frontend in self.frontends: 35 for frontend in self.frontends:
44 if (frontend.module == frontend.submodule): 36 if (frontend.module == frontend.submodule):
45 submoduleExtension = '' 37 submoduleExtension = ''
46 else: 38 else:
47 submoduleExtension = '.' + frontend.submodule 39 submoduleExtension = '.' + frontend.submodule
48 40
49 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module)) 41 main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module))
50 42
51 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG')) 43 index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG'))
52 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index) 44 self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
diff --git a/scripts/builder/main.py b/scripts/builder/main.py
index b9fe04a..ecdbf6a 100755
--- a/scripts/builder/main.py
+++ b/scripts/builder/main.py
@@ -131,61 +131,66 @@ def usage (message):
131 print "build install debug --backends php python --frontends beta gamma" 131 print "build install debug --backends php python --frontends beta gamma"
132 print "build install debug development --backends php python --frontends beta gamma gamma.mobile" 132 print "build install debug development --backends php python --frontends beta gamma gamma.mobile"
133 exit(1) 133 exit(1)
134 134
135#-------------------------------------------------------------------- 135#--------------------------------------------------------------------
136 136
137def allFrontends (): 137def allFrontends ():
138 return ['beta', 'gamma', 'gamma.mobile'] 138 return ['beta', 'gamma', 'gamma.mobile']
139 139
140def allBackends (): 140def allBackends ():
141 return ['php', 'python'] 141 return ['php', 'python']
142 142
143#-------------------------------------------------------------------- 143#--------------------------------------------------------------------
144 144
145def main (): 145def main ():
146 settings = {} 146 settings = {}
147 parameters = list(itertools.islice(sys.argv, 1, None)) 147 parameters = list(itertools.islice(sys.argv, 1, None))
148 148
149 sys.path.append(os.path.join(scriptDir(), 'backends')) 149 sys.path.append(os.path.join(scriptDir(), 'backends'))
150 sys.path.append(os.path.join(scriptDir(), 'frontends')) 150 sys.path.append(os.path.join(scriptDir(), 'frontends'))
151 currentRepository = repository.repositoryWithPath(projectBaseDir()) 151 currentRepository = repository.repositoryWithPath(projectBaseDir())
152 152
153 clean() 153 clean()
154 versions = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters)) 154 versions = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters))
155 settings['versions'] = versions; #['debug', 'install', 'development'] 155 settings['versions'] = versions; #['debug', 'install', 'development', 'checksum']
156 parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters)) 156 parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters))
157 157
158 if len(parameters) > 0: 158 if len(parameters) > 0:
159 parameter = parameters.popleft() 159 parameter = parameters.popleft()
160 if parameter == "--ALL": 160 if parameter == "--ALL":
161 settings['frontends'] = allFrontends() 161 settings['frontends'] = allFrontends()
162 settings['backends'] = allBackends() 162 settings['backends'] = allBackends()
163 else: 163 else:
164 while parameter != None: 164 while parameter != None:
165 values = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters)) 165 values = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters))
166 166
167 if parameter == "--backends": 167 if parameter == "--backends":
168 settings['backends'] = values 168 settings['backends'] = values
169 elif parameter == "--frontends": 169 elif parameter == "--frontends":
170 settings['frontends'] = values 170 settings['frontends'] = values
171 171
172 parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters)) 172 parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters))
173 if parameters: 173 if parameters:
174 parameter = parameters.popleft() 174 parameter = parameters.popleft()
175 else: 175 else:
176 parameter = None 176 parameter = None
177 177
178 if 'checksum' in settings['versions']:
179 if not 'backends' in settings:
180 settings['backends'] = []
181 settings['backends'].append('checksum')
182
178 if (not settings.has_key('versions')): 183 if (not settings.has_key('versions')):
179 usage("missing 'versions'") 184 usage("missing 'versions'")
180 if (not settings.has_key('frontends')): 185 if (not settings.has_key('frontends')):
181 usage("missing 'frontends'") 186 usage("missing 'frontends'")
182 if (not settings.has_key('backends')): 187 if (not settings.has_key('backends')):
183 usage("missing 'backends'") 188 usage("missing 'backends'")
184 189
185 build(settings, currentRepository) 190 build(settings, currentRepository)
186 else: 191 else:
187 usage("Suggestions on how to call the 'build' script:") 192 usage("Suggestions on how to call the 'build' script:")
188 193
189 194
190if __name__ == "__main__": 195if __name__ == "__main__":
191 main() 196 main()
diff --git a/scripts/builder/repository.py b/scripts/builder/repository.py
index 2d4a12b..2d4a12b 100644..100755
--- a/scripts/builder/repository.py
+++ b/scripts/builder/repository.py