summaryrefslogtreecommitdiff
path: root/scripts
authorGiulio Cesare Solaroli <giulio.cesare@clipperz.com>2013-08-30 15:56:53 (UTC)
committer Giulio Cesare Solaroli <giulio.cesare@clipperz.com>2013-08-30 21:23:42 (UTC)
commit20bea94ab6b91c85b171dcf86baba0a64169d508 (patch) (side-by-side diff)
tree6e38e91498dcdb861620eba1e237d1026fe79cc5 /scripts
parentbde3c7b98523112ade9c5bbf7390c4ecb494cd2e (diff)
downloadclipperz-20bea94ab6b91c85b171dcf86baba0a64169d508.zip
clipperz-20bea94ab6b91c85b171dcf86baba0a64169d508.tar.gz
clipperz-20bea94ab6b91c85b171dcf86baba0a64169d508.tar.bz2
First release of /delta version
Diffstat (limited to 'scripts') (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/builder/backendBuilder.py7
-rw-r--r--[-rwxr-xr-x]scripts/builder/backends/phpBuilder.py0
-rw-r--r--scripts/builder/frontendBuilder.py73
-rw-r--r--scripts/builder/frontends/betaBuilder.py3
-rw-r--r--scripts/builder/frontends/deltaBuilder.py16
-rw-r--r--scripts/builder/frontends/gammaBuilder.py3
-rw-r--r--scripts/builder/frontends/gamma_mobileBuilder.py3
-rwxr-xr-xscripts/proxy/main.py19
8 files changed, 60 insertions, 64 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
@@ -59,27 +59,30 @@ class BackendBuilder(object):
def targetFolder (self):
return os.path.join(self.projectTargetDir, self.relativePath())
# --------------------------------------------------------------------------
def writeToFolder (self, folder, filename, content):
file = open(os.path.join(folder, filename), 'w')
file.write(content.encode('utf-8'))
file.close()
- def configureIndexContent (self, indexContent, requestPathPrefix = ".."):
+# def configureIndexContent (self, indexContent, requestPathPrefix = ".."):
+ def configureIndexContent (self, indexContent):
result = indexContent
- result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] )
+# result = result.replace( '@request.path@', requestPathPrefix + '/' + self.settings['request.path'] )
+ result = result.replace( '@request.path@', self.settings['request.path'] )
+ result = result.replace( '@dump.path@', self.settings['dump.path'] )
result = result.replace( '@should.pay.toll@', self.settings['should.pay.toll'] )
return result
def formatMAC (self, value):
x = iter(value)
return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)])
def logChecksums (self, content, message):
md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest())
diff --git a/scripts/builder/backends/phpBuilder.py b/scripts/builder/backends/phpBuilder.py
index c928aa0..c928aa0 100755..100644
--- a/scripts/builder/backends/phpBuilder.py
+++ b/scripts/builder/backends/phpBuilder.py
diff --git a/scripts/builder/frontendBuilder.py b/scripts/builder/frontendBuilder.py
index e52c31e..b72179f 100644
--- a/scripts/builder/frontendBuilder.py
+++ b/scripts/builder/frontendBuilder.py
@@ -26,24 +26,26 @@ class FrontendBuilder(object):
self.settings = settings
self.projectDir = main.projectBaseDir()
# self.repository = repository.repositoryWithPath(self.projectDir)
self.repositoryVersion = repositoryVersion
self.processedFiles = {}
#---------------------------------------------------------------------------
def name (self):
raise NotImplementedError()
+ def projectResourceTypes (self):
+ raise NotImplementedError()
def copyStaticResources (self, targetFolder):
raise NotImplementedError()
#---------------------------------------------------------------------------
def log (self, message):
module = self.module
if (self.module != self.submodule):
module = module + "." + self.submodule
print "frontend [" + module + "]: " + message
@@ -84,27 +86,29 @@ class FrontendBuilder(object):
dstFolder = os.path.join(destinationFolder, self.module, fileType)
if not(os.path.exists(dstFolder)):
shutil.copytree(srcFolder, dstFolder)
# try:
# shutil.copytree(srcFolder, dstFolder)
# except:
# pass
def copyResourcesToFolder (self, targetFolder):
- self.copyResources(self.projectDir, targetFolder, 'css')
- self.copyResources(self.projectDir, targetFolder, 'js')
- self.copyResources(self.projectDir, targetFolder, 'images')
+# self.copyResources(self.projectDir, targetFolder, 'css')
+# self.copyResources(self.projectDir, targetFolder, 'js')
+# self.copyResources(self.projectDir, targetFolder, 'images')
+ for resoureceType in self.projectResourceTypes():
+ self.copyResources(self.projectDir, targetFolder, resoureceType)
self.copyStaticResources(targetFolder)
def loadFilesContent (self, basePath, files):
result = ""
for file in self.filterFiles(files):
try:
fileHandler = codecs.open(self.absolutePathForSourceFile(basePath, file), 'r', 'utf-8')
except:
print "FILE: " + file
@@ -234,73 +238,26 @@ class FrontendBuilder(object):
result = re.sub(replacer[0], replacer[1], result)
# <!-- escaping required to handle the bookmarklet code within the javascript code -->
result = re.sub('\://', '%3a%2f%2f', result)
result = re.sub('/', '%2f', result)
# result = re.sub('"', '%22', result)
result = re.sub('"', '\\"', result)
result = re.sub('\"', '%22', result)
result = re.sub('\'', '%22', result)
result = re.sub('\\\\', '%5c', result)
result = result.strip()
result = 'javascript:' + result
-
-# replacers = [
-# ('aForm', '_1' ),
-# ('inputFields', '_2' ),
-# ('passwordFieldsFound', '_3' ),
-# ('aDocument', '_6' ),
-# ('aLevel', '_7' ),
-# # ('result', '_8' ),
-# ('documentForms', '_9' ),
-# ('iFrames', '_c' ),
-# ('anInputElement', '_d' ),
-# ('options', '_f' ),
-# ('option', '_12'),
-# ('aLoginForm', '_13'),
-# # ('action', '_17'),
-# ('radioValues', '_18'),
-# ('radioValueName', '_19'),
-# ('inputElement', '_1a'),
-# ('elementValues', '_1b'),
-# ('radioValue', '_1c'),
-# ('values', '_1d'),
-# ('objtype', '_21'),
-# ('useKey', '_27'),
-# ('bookmarkletDiv', '_28'),
-# ('someParameters', '_29'),
-# ('anException', '_2a'),
-# ('newDiv', '_2b'),
-# ('base_url', '_2c'),
-# ('help_url', '_2d'),
-# ('logo_image_url', '_2e'),
-# ('background_image_url','_2f'),
-# ('close_image_url', '_30'),
-# # ('bookmarklet_textarea','_31'),
-# ('innerHTML', '_32'),
-# ]
-# for replacer in replacers:
-# result = re.sub('([^\.])' + replacer[0], '\\1' + replacer[1], result)
-
-# replacers = [
-# ('headNode', '_1' ),
-# ('clipperzScriptNode', '_2' ),
-# ]
-# for replacer in replacers:
-# result = re.sub('([^\.])' + replacer[0], '\\1' + replacer[1], result)
-
-# result = re.sub(';', ';\n', result)
return result
-
def bookmarklet (self):
cacheKey = 'bookmarklet'
if not self.processedFiles.has_key(cacheKey):
result = 'bookmarklet="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet.js']), "regular") + '";bookmarklet_ie="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet_IE.js']), "IE") + '";'
self.processedFiles[cacheKey] = result
else:
result = self.processedFiles[cacheKey]
return result
@@ -379,35 +336,39 @@ class FrontendBuilder(object):
copyright = self.assembleCopyrightHeader()
css = self.cssTagForContent(self.compressCSS(self.loadFilesContent('css', self.settings['css'])))
js = self.scriptTagForContent(
self.bookmarklet() +
'\n' +
self.compressJS(self.loadFilesContent('js', self.settings['js']), "application")
)
jsLoadMode = 'EMBEDDED'
elif assemblyMode == 'DEBUG':
copyright = self.assembleCopyrightHeader()
css = self.cssTagsForFiles('./css', self.filterFiles(self.settings['css']))
- js = self.scriptTagForContent(self.bookmarklet()) + \
- '\n' + \
- self.scriptTagsForFiles('./js', self.filterFiles(self.settings['js']))
+ js = self.scriptTagForContent(
+ self.bookmarklet()) + \
+ '\n' + \
+ self.scriptTagsForFiles('./js', self.filterFiles(self.settings['js'])
+ )
jsLoadMode = 'LINKED'
elif assemblyMode == 'DEVELOPMENT':
copyright = ""
css = self.cssTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'css')), self.filterFiles(self.settings['css']))
- js = self.scriptTagForContent(self.bookmarklet()) + \
- '\n' + \
- self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js']))
+ js = self.scriptTagForContent(
+ self.bookmarklet()) + \
+ '\n' + \
+ self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js'])
+ )
jsLoadMode = 'LINKED'
versionType = 'development'
else:
raise NotImplementedError()
return self.assembleVersion(
pageTitle = pageTitle,
copyright = copyright,
css = css,
js = js,
jsLoadMode = jsLoadMode,
diff --git a/scripts/builder/frontends/betaBuilder.py b/scripts/builder/frontends/betaBuilder.py
index c5a3e76..9b32404 100644
--- a/scripts/builder/frontends/betaBuilder.py
+++ b/scripts/builder/frontends/betaBuilder.py
@@ -1,14 +1,17 @@
from frontendBuilder import FrontendBuilder
import shutil
class BetaBuilder(FrontendBuilder):
def name(self):
return "/beta builder"
+ def projectResourceTypes (self):
+ return ['js', 'css', 'images']
+
def copyStaticResources (self, targetFolder):
for file in self.filterFiles(self.settings['staticResources']):
src = self.absolutePathForSourceFile('staticResources', file)
dst = self.absolutePathForTargetFile(targetFolder, '', file)
shutil.copy2(src, dst)
diff --git a/scripts/builder/frontends/deltaBuilder.py b/scripts/builder/frontends/deltaBuilder.py
new file mode 100644
index 0000000..a341a83
--- a/dev/null
+++ b/scripts/builder/frontends/deltaBuilder.py
@@ -0,0 +1,16 @@
+from frontendBuilder import FrontendBuilder
+import shutil
+
+class DeltaBuilder(FrontendBuilder):
+
+ def name(self):
+ return "/delta builder"
+
+ def projectResourceTypes (self):
+ return ['js', 'css']
+
+ def copyStaticResources (self, targetFolder):
+ pass
+
+ def bookmarklet (self):
+ return "" \ No newline at end of file
diff --git a/scripts/builder/frontends/gammaBuilder.py b/scripts/builder/frontends/gammaBuilder.py
index a6ecb7b..c56fb1b 100644
--- a/scripts/builder/frontends/gammaBuilder.py
+++ b/scripts/builder/frontends/gammaBuilder.py
@@ -1,20 +1,23 @@
from frontendBuilder import FrontendBuilder
import shutil
class GammaBuilder(FrontendBuilder):
def name(self):
return "/gamma builder"
+ def projectResourceTypes (self):
+ return ['js', 'css', 'images']
+
def copyStaticResources (self, targetFolder):
resourcesToCopy = [
# {'folder': 'html', 'source': 'exit_template.html', 'target': 'exit.html'},
{'folder': 'html', 'source': 'exit_template.html', 'target': 'logout.html'},
{'folder': 'css', 'source': 'static.css', 'target': 'static.css'}
]
for resource in resourcesToCopy:
src = self.absolutePathForSourceFile(resource['folder'], resource['source'])
dst = self.absolutePathForTargetFile(targetFolder, '', resource['target'])
shutil.copy2(src, dst)
diff --git a/scripts/builder/frontends/gamma_mobileBuilder.py b/scripts/builder/frontends/gamma_mobileBuilder.py
index f2e80c9..677a2b0 100644
--- a/scripts/builder/frontends/gamma_mobileBuilder.py
+++ b/scripts/builder/frontends/gamma_mobileBuilder.py
@@ -1,9 +1,12 @@
from frontendBuilder import FrontendBuilder
class Gamma_MobileBuilder(FrontendBuilder):
def name(self):
return "/gamma.mobile builder"
+ def projectResourceTypes (self):
+ return ['js', 'css', 'images']
+
def copyStaticResources (self, targetFolder):
pass
diff --git a/scripts/proxy/main.py b/scripts/proxy/main.py
index 107ba16..8ce4989 100755
--- a/scripts/proxy/main.py
+++ b/scripts/proxy/main.py
@@ -18,78 +18,85 @@ def projectBaseDir ():
def projectTargetDir():
return projectBaseDir() + '/target/'
#--------------------------------------------------------------------
class ClipperzTestSite(server.Site):
def __init__(self, resource, logPath=None, timeout=60 * 60 * 12):
server.Site.__init__(self, resource, logPath, timeout)
def getResourceFor(self, request):
- if request.uri.startswith('/json') or request.uri.startswith('/dump'):
+ uri = request.uri
+ uri = uri.split("?", 1)[0]
+ uri = uri.split("#", 1)[0]
+ if uri.startswith('/json') or uri.startswith('/dump'):
request.site = self
request.sitepath = copy.copy(request.prepath)
result = resource.getChildForRequest(self.resource, request)
else:
- pathParts = request.uri.split('/')
+ pathParts = uri.split('/')
version = pathParts[1]
if pathParts[2].startswith('index.'):
contentType = 'text/html'
absoluteFilePath = os.path.join(projectTargetDir(), 'dev', version, pathParts[2])
result = static.File(absoluteFilePath, contentType)
-
+ elif pathParts[2].endswith('.webapp'):
+ contentType = 'application/x-web-app-manifest+json'
+# absoluteFilePath = os.path.join(projectTargetDir(), 'dev', version, pathParts[2])
+ absoluteFilePath = os.path.join(projectBaseDir(), 'frontend', version, 'properties', pathParts[2])
+ result = static.File(absoluteFilePath, contentType)
else:
# http://homer.local:8888/beta/css/clipperz/images/loginInfoBackground.png
# pathParts: ['', 'beta', 'css', 'clipperz', 'images', 'loginInfoBackground.png']
try:
imagePathIndex = pathParts.index('images')
resourceType = 'images'
for _ in range(2, imagePathIndex):
del pathParts[2]
except:
resourceType = pathParts[2]
basePath = projectBaseDir() + '/frontend'
if resourceType == 'images':
- fileExtension = os.path.splitext(request.uri)[1]
+ fileExtension = os.path.splitext(uri)[1]
if fileExtension == '.png':
contentType = 'image/png'
elif fileExtension == '.jpg':
contentType = 'image/jpeg'
elif fileExtension == '.gif':
contentType = 'image/gif'
else:
print "ERROR - unknown image extension: " + fileExtension
absoluteFilePath = basePath + '/'.join(pathParts)
else:
resourceType = pathParts[2]
if resourceType == 'css':
contentType = 'text/css'
elif resourceType == 'js':
contentType = 'text/javascript'
else:
contentType = 'text/html'
- absoluteFilePath = basePath + request.uri
+ absoluteFilePath = basePath + uri
result = static.File(absoluteFilePath, contentType)
return result
def main ():
- site = ClipperzTestSite(proxy.ReverseProxyResource('localhost', 8084, '/java-backend'))
+ site = ClipperzTestSite(proxy.ReverseProxyResource('localhost', 8080, '/java-backend'))
reactor.listenTCP(8888, site)
reactor.run()
if __name__ == "__main__":
main()