blob: 9047fc791c651202f540e293168594a97d0da670 [file] [log] [blame]
# 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'))
shutil.copy(os.path.join(pageloader_dir, 'tp-cmdline.manifest'),
os.path.join(components_dir, 'tp-cmdline.manifest'))
# get rid of the temporary directory
removedir(tmp_dir)