diff options
author | Cary Clark <> | 2009-04-14 06:33:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-14 06:33:00 -0700 |
commit | 563af33bc48281d19dce701398dbb88cb54fd7ec (patch) | |
tree | 395b4502f029dea8b25b342d66dc06b5d8f99985 /WebKitTools/CygwinDownloader | |
parent | 5cfedfef172691d0f4bcf2be5ca3cddd8c9a47f4 (diff) | |
download | external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.zip external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.tar.gz external_webkit-563af33bc48281d19dce701398dbb88cb54fd7ec.tar.bz2 |
AI 146110: add missing files to webkit
brings it in sync with webkit svn cl 42046
Automated import of CL 146110
Diffstat (limited to 'WebKitTools/CygwinDownloader')
-rw-r--r-- | WebKitTools/CygwinDownloader/cygwin-downloader.py | 157 | ||||
-rw-r--r-- | WebKitTools/CygwinDownloader/cygwin-downloader.zip | bin | 0 -> 2989085 bytes | |||
-rwxr-xr-x | WebKitTools/CygwinDownloader/make-zip.sh | 30 | ||||
-rw-r--r-- | WebKitTools/CygwinDownloader/setup.py | 4 |
4 files changed, 191 insertions, 0 deletions
diff --git a/WebKitTools/CygwinDownloader/cygwin-downloader.py b/WebKitTools/CygwinDownloader/cygwin-downloader.py new file mode 100644 index 0000000..d87e0da --- /dev/null +++ b/WebKitTools/CygwinDownloader/cygwin-downloader.py @@ -0,0 +1,157 @@ +#!/usr/bin/env python + +import os, random, sys, time, urllib + +# +# Options +# + +dry_run = len(sys.argv) > 1 and "--dry-run" in set(sys.argv[1:]) +quiet = len(sys.argv) > 1 and "--quiet" in set(sys.argv[1:]) + +# +# Functions and constants +# + +def download_progress_hook(block_count, block_size, total_blocks): + if quiet or random.random() > 0.5: + return + sys.stdout.write(".") + sys.stdout.flush() + +def download_url_to_file(url, file, message): + if not quiet: + print message + " ", + if not dry_run: + dir = os.path.dirname(file) + if len(dir) and not os.path.exists(dir): + os.makedirs(dir) + urllib.urlretrieve(url, file, download_progress_hook) + if not quiet: + print + +# This is mostly just the list of North America http mirrors from http://cygwin.com/mirrors.html, +# but a few have been removed that seemed unresponsive from Cupertino. +mirror_servers = ["http://cygwin.elite-systems.org/", + "http://mirror.mcs.anl.gov/cygwin/", + "http://cygwin.osuosl.org/", + "http://mirrors.kernel.org/sourceware/cygwin/", + "http://mirrors.xmission.com/cygwin/", + "http://sourceware.mirrors.tds.net/pub/sourceware.org/cygwin/"] + +package_mirror_url = mirror_servers[random.choice(range(len(mirror_servers)))] + +def download_package(package, message): + download_url_to_file(package_mirror_url + package["path"], package["path"], message) + +required_packages = frozenset(["apache", + "bc", + "bison", + "curl", + "diffutils", + "e2fsprogs", + "emacs", + "flex", + "gcc", + "gperf", + "keychain", + "make", + "nano", + "openssh", + "patch", + "perl", + "perl-libwin32", + "python", + "rebase", + "rsync", + "ruby", + "subversion", + "unzip", + "vim", + "zip"]) + +# +# Main +# + +print "Using Cygwin mirror server " + package_mirror_url + " to download setup.ini..." + +urllib.urlretrieve(package_mirror_url + "setup.ini", "setup.ini.orig") + +downloaded_packages_file_path = "setup.ini.orig" +downloaded_packages_file = file(downloaded_packages_file_path, "r") +if not dry_run: + modified_packages_file = file("setup.ini", "w") + +packages = {} +current_package = '' +for line in downloaded_packages_file.readlines(): + if line[0] == "@": + current_package = line[2:-1] + packages[current_package] = {"name": current_package, "needs_download": False, "requires": [], "path": ""} + elif line[:10] == "category: ": + if current_package in required_packages: + line = "category: Base\n" + if "Base" in set(line[10:-1].split()): + packages[current_package]["needs_download"] = True + elif line[:10] == "requires: ": + packages[current_package]["requires"] = line[10:].split() + packages[current_package]["requires"].sort() + elif line[:9] == "install: " and not len(packages[current_package]["path"]): + end_of_path = line.find(" ", 9) + if end_of_path != -1: + packages[current_package]["path"] = line[9:end_of_path] + if not dry_run: + modified_packages_file.write(line) + +downloaded_packages_file.close() +os.remove(downloaded_packages_file_path) +if not dry_run: + modified_packages_file.close() + +names_to_download = set() +package_names = packages.keys() +package_names.sort() + +def add_package_and_dependencies(name): + if name in names_to_download: + return + if not name in packages: + return + packages[name]["needs_download"] = True + names_to_download.add(name) + for dep in packages[name]["requires"]: + add_package_and_dependencies(dep) + +for name in package_names: + if packages[name]["needs_download"]: + add_package_and_dependencies(name) + +downloaded_so_far = 0 +for name in package_names: + if packages[name]["needs_download"]: + downloaded_so_far += 1 + download_package(packages[name], "Downloading package %3d of %3d (%s)" % (downloaded_so_far, len(names_to_download), name)) + +download_url_to_file("http://cygwin.com/setup.exe", "setup.exe", "Downloading setup.exe") + +seconds_to_sleep = 10 + +print """ +Finished downloading Cygwin. In %d seconds, +I will run setup.exe. Select the "Install +from Local Directory" option and browse to +"%s" +when asked for the "Local Package Directory". +""" % (seconds_to_sleep, os.getcwd()) + + +while seconds_to_sleep > 0: + print "%d..." % seconds_to_sleep, + sys.stdout.flush() + time.sleep(1) + seconds_to_sleep -= 1 +print + +if not dry_run: + os.execl("setup.exe") diff --git a/WebKitTools/CygwinDownloader/cygwin-downloader.zip b/WebKitTools/CygwinDownloader/cygwin-downloader.zip Binary files differnew file mode 100644 index 0000000..9b9c0f0 --- /dev/null +++ b/WebKitTools/CygwinDownloader/cygwin-downloader.zip diff --git a/WebKitTools/CygwinDownloader/make-zip.sh b/WebKitTools/CygwinDownloader/make-zip.sh new file mode 100755 index 0000000..4a389a9 --- /dev/null +++ b/WebKitTools/CygwinDownloader/make-zip.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +PYTHONEXE=$(cygpath -u "${SYSTEMDRIVE}\\Python25\\python.exe") +ZIPNAME="cygwin-downloader.zip" + +if [[ ! -f "${PYTHONEXE}" ]]; then + echo "Couldn't find python.exe at ${PYTHONEXE}" 1>&2 + exit 1 +fi + +"${PYTHONEXE}" setup.py py2exe || { + echo "Failed executing setup.py" 1>&2 + exit 1 +} + +rm -f "${ZIPNAME}" + +cd dist + +zip -r ../"${ZIPNAME}" * || { + echo "Failed to create cygwin-downloader" 1>&2 + exit 1 +} + +cd .. + +rm -rf build dist || { + echo "Failed to cleanup cygwin-downloader and build directories" 1>&2 + exit 1 +} diff --git a/WebKitTools/CygwinDownloader/setup.py b/WebKitTools/CygwinDownloader/setup.py new file mode 100644 index 0000000..c3171d9 --- /dev/null +++ b/WebKitTools/CygwinDownloader/setup.py @@ -0,0 +1,4 @@ +from distutils.core import setup +import py2exe + +setup(console=['cygwin-downloader.py']) |