a=anodelman r=rcampbell git-svn-id: svn://10.0.0.236/trunk@242368 18797224-902f-48f8-a5cc-f745e15eee43
84 lines
2.8 KiB
Python
84 lines
2.8 KiB
Python
# Generates the proper chrome/ and component/ directories that can be dropped
|
|
# into a profile to enable the pageloader
|
|
# Original Author: Alice Nodelman (anodelman@mozilla.com)
|
|
# Modified by: Ben Hearsum (bhearsum@mozilla.com)
|
|
|
|
import os
|
|
import sys
|
|
import zipfile
|
|
import shutil
|
|
import tempfile
|
|
|
|
# create the temp directory
|
|
tmp_dir = tempfile.mkdtemp()
|
|
pageloader_dir = os.path.join(tmp_dir, "pageloader")
|
|
# where the chrome/ and component/ directories will be put
|
|
working_dir = "."
|
|
chrome_dir = os.path.join(working_dir, 'chrome')
|
|
components_dir = os.path.join(working_dir, 'components')
|
|
# where the pageloader will be checked out from
|
|
cvsroot = ":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot"
|
|
module = "mozilla/layout/tools/pageloader"
|
|
|
|
def removedir(rdir):
|
|
if os.path.isdir(rdir):
|
|
for root, dirs, files in os.walk(rdir, topdown=False):
|
|
for name in files:
|
|
os.remove(os.path.join(root, name))
|
|
for name in dirs:
|
|
os.rmdir(os.path.join(root, name))
|
|
os.rmdir(rdir)
|
|
|
|
def zipdir(zip, zdir):
|
|
if os.path.isdir(zdir):
|
|
for root, dirs, files in os.walk(zdir, topdown=False):
|
|
for name in files:
|
|
zip.write(os.path.join(root, name), os.path.join(os.path.basename(zdir), name))
|
|
else:
|
|
zip.write(zdir)
|
|
|
|
|
|
# bail if the directories already exist
|
|
if os.path.exists(chrome_dir):
|
|
print "chrome/ directory exists, bailing out"
|
|
sys.exit(1)
|
|
if os.path.exists(components_dir):
|
|
print "components/ directory exists, bailing out"
|
|
sys.exit(1)
|
|
|
|
oldcwd = os.getcwd()
|
|
os.chdir(tmp_dir)
|
|
# exit if cvs throws an error
|
|
if os.system("cvs -d%s co -d pageloader %s" % (cvsroot, module)):
|
|
print "could not retrieve pageloader, bailing out"
|
|
sys.exit(1)
|
|
os.chdir(oldcwd)
|
|
|
|
#create the directory structure in the working_dir
|
|
os.mkdir(chrome_dir)
|
|
os.mkdir(os.path.join(chrome_dir, 'content'))
|
|
os.mkdir(components_dir)
|
|
|
|
#create the pageloader.manifest file
|
|
f = open(os.path.join(chrome_dir, 'pageloader.manifest'), 'w')
|
|
f.write('content pageloader jar:pageloader.jar!/content/\n')
|
|
f.close()
|
|
|
|
shutil.copy(os.path.join(pageloader_dir, 'pageloader.xul'), os.path.join(chrome_dir, 'content', 'pageloader.xul'))
|
|
shutil.copy(os.path.join(pageloader_dir, 'quit.js'), os.path.join(chrome_dir, 'content', 'quit.js'))
|
|
shutil.copy(os.path.join(pageloader_dir, 'pageloader.js'), os.path.join(chrome_dir, 'content', 'pageloader.js'))
|
|
shutil.copy(os.path.join(pageloader_dir, 'report.js'), os.path.join(chrome_dir, 'content', 'report.js'))
|
|
|
|
# create pageloader.jar
|
|
jar = zipfile.ZipFile(os.path.join(chrome_dir, 'pageloader.jar'), 'w')
|
|
zipdir(jar, os.path.join(chrome_dir, 'content'))
|
|
jar.close()
|
|
|
|
removedir(os.path.join(chrome_dir, 'content'))
|
|
|
|
shutil.copy(os.path.join(pageloader_dir, 'tp-cmdline.js'), os.path.join(components_dir, 'tp-cmdline.js'))
|
|
|
|
#get rid of the temporary directory
|
|
removedir(tmp_dir)
|
|
|