summaryrefslogtreecommitdiff
path: root/scripts/builder/frontendBuilder.py
Unidiff
Diffstat (limited to 'scripts/builder/frontendBuilder.py') (more/less context) (show whitespace changes)
-rw-r--r--scripts/builder/frontendBuilder.py46
1 files changed, 38 insertions, 8 deletions
diff --git a/scripts/builder/frontendBuilder.py b/scripts/builder/frontendBuilder.py
index 1f0f92f..e52c31e 100644
--- a/scripts/builder/frontendBuilder.py
+++ b/scripts/builder/frontendBuilder.py
@@ -11,6 +11,8 @@ import urllib
11 11
12import main 12import main
13 13
14#===============================================================================
15
14class FrontendBuilder(object): 16class FrontendBuilder(object):
15 17
16 def __init__ (self, frontend, settings, repositoryVersion): 18 def __init__ (self, frontend, settings, repositoryVersion):
@@ -28,9 +30,22 @@ class FrontendBuilder(object):
28 self.repositoryVersion = repositoryVersion 30 self.repositoryVersion = repositoryVersion
29 self.processedFiles = {} 31 self.processedFiles = {}
30 32
33 #---------------------------------------------------------------------------
34
35 def name (self):
36 raise NotImplementedError()
37
38
39 def copyStaticResources (self, targetFolder):
40 raise NotImplementedError()
41
42 #---------------------------------------------------------------------------
31 43
32 def log (self, message): 44 def log (self, message):
33 print "frontend [" + self.module + "]: " + message 45 module = self.module
46 if (self.module != self.submodule):
47 module = module + "." + self.submodule
48 print "frontend [" + module + "]: " + message
34 49
35 50
36 def absolutePathForSources (self): 51 def absolutePathForSources (self):
@@ -58,16 +73,30 @@ class FrontendBuilder(object):
58 73
59 74
60 def copyResources (self, sourceFolder, destinationFolder, fileType): 75 def copyResources (self, sourceFolder, destinationFolder, fileType):
76 if fileType in self.settings:
61 for file in self.filterFiles(self.settings[fileType]): 77 for file in self.filterFiles(self.settings[fileType]):
62 src = self.absolutePathForSourceFile(fileType, file) 78 src = self.absolutePathForSourceFile(fileType, file)
63 dst = self.absolutePathForTargetFile(destinationFolder, fileType, file) 79 dst = self.absolutePathForTargetFile(destinationFolder, fileType, file)
64 main.createFolder(os.path.dirname(dst)) 80 main.createFolder(os.path.dirname(dst))
65 shutil.copy2(src, dst) 81 shutil.copy2(src, dst)
82 else:
83 srcFolder = os.path.join(self.absolutePathForSources(), fileType)
84 dstFolder = os.path.join(destinationFolder, self.module, fileType)
85 if not(os.path.exists(dstFolder)):
86 shutil.copytree(srcFolder, dstFolder)
87
88 # try:
89 # shutil.copytree(srcFolder, dstFolder)
90 # except:
91 # pass
92
66 93
67 94
68 def copyResourcesToFolder (self, targetFolder): 95 def copyResourcesToFolder (self, targetFolder):
69 self.copyResources(self.projectDir, targetFolder, 'css') 96 self.copyResources(self.projectDir, targetFolder, 'css')
70 self.copyResources(self.projectDir, targetFolder, 'js') 97 self.copyResources(self.projectDir, targetFolder, 'js')
98 self.copyResources(self.projectDir, targetFolder, 'images')
99 self.copyStaticResources(targetFolder)
71 100
72 101
73 def loadFilesContent (self, basePath, files): 102 def loadFilesContent (self, basePath, files):
@@ -279,13 +308,13 @@ class FrontendBuilder(object):
279 def replaceTemplatePlaceholders (self, pageTitle, copyright, css, code, jsLoadMode, version, versionType): 308 def replaceTemplatePlaceholders (self, pageTitle, copyright, css, code, jsLoadMode, version, versionType):
280 result = self.template() 309 result = self.template()
281 310
282 result = result.replace('@page.title@', pageTitle, 1) 311 result = result.replace('@page.title@', pageTitle)
283 result = result.replace('@copyright@', copyright, 1) 312 result = result.replace('@copyright@', copyright)
284 result = result.replace('@css@', css, 1) 313 result = result.replace('@css@', css)
285 #result = result.replace('@bookmarklet@', bookmarklet,1) 314 #result = result.replace('@bookmarklet@', bookmarklet)
286 result = result.replace('@application.version@', version, 1) 315 result = result.replace('@application.version@', version)
287 result = result.replace('@application.version.type@', versionType,1) 316 result = result.replace('@application.version.type@',versionType)
288 result = result.replace('@js_' + jsLoadMode + '@', code, 1) 317 result = result.replace('@js_' + jsLoadMode + '@', code)
289 318
290 result = re.sub('@js_[^@]+@', '', result) 319 result = re.sub('@js_[^@]+@', '', result)
291 320
@@ -371,6 +400,7 @@ class FrontendBuilder(object):
371 '\n' + \ 400 '\n' + \
372 self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js'])) 401 self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js']))
373 jsLoadMode = 'LINKED' 402 jsLoadMode = 'LINKED'
403 versionType = 'development'
374 404
375 else: 405 else:
376 raise NotImplementedError() 406 raise NotImplementedError()