1
################################################################################
6
from os.path import normpath, join, dirname, abspath
10
from build_client.helpers import create_zip
12
from pywebsite.escape import ehtml
14
def relative_to(f, rel):
15
return normpath(join(abspath(dirname(f)), rel)).strip()
19
s = re.sub('[^a-z0-9-]', '-', s)
20
return re.sub('-+', '-', s)
23
return re.sub('\r\n|\r', '\n', s)
25
################################################################################
27
class ResultsZip(zipfile.ZipFile):
28
def __init__(self, *args, **kw):
29
zipfile.ZipFile.__init__(self, *args, **kw)
30
self.config = self.eval('config.txt')
31
self.text_files = set(t for t in self.namelist() if t != self.installer)
35
if 'prebuilt' in self.namelist():
36
return norm_le(self.read('prebuilt')).split('\n')[2].strip()
39
data = norm_le(self.read(key))
40
return safe_eval.safe_eval(data)
42
def __getattr__(self, attr):
43
return self.config[attr]
45
def archive_text(self, path):
46
create_zip(path, **dict((k, self.read(k)) for k in self.text_files))
48
def html(self, the_main):
52
for i, f in enumerate(sorted(self.text_files)):
56
"<li class='t%(i)s'><a class='t%(i)s tab' href='%(fslug)s'>"
57
"%(f)s</a></li>" % locals()
61
contents = ehtml(self.read(f), 'utf-8')
62
contents = "<div class='t%s'><pre>%s</pre></div>" % (i, contents)
64
return '\n'.join(all_tabs), contents
66
################################################################################
68
__all__ = ['relative_to', 'slug', 'ResultsZip']
70
################################################################################
72
if __name__ == '__main__':
73
rz = ResultsZip('results.zip')
76
rz.dump_file('bla.zip')
b'\\ No newline at end of file'