From 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 Mon Sep 17 00:00:00 2001 From: darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524> Date: Mon, 16 Apr 2012 22:12:42 +0000 Subject: AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site. These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Python-2.7.2/Tools/webchecker/websucker.py | 123 +++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Tools/webchecker/websucker.py (limited to 'AppPkg/Applications/Python/Python-2.7.2/Tools/webchecker/websucker.py') diff --git a/AppPkg/Applications/Python/Python-2.7.2/Tools/webchecker/websucker.py b/AppPkg/Applications/Python/Python-2.7.2/Tools/webchecker/websucker.py new file mode 100644 index 0000000000..9e4fd292c8 --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Tools/webchecker/websucker.py @@ -0,0 +1,123 @@ +#! /usr/bin/env python + +"""A variant on webchecker that creates a mirror copy of a remote site.""" + +__version__ = "$Revision$" + +import os +import sys +import urllib +import getopt + +import webchecker + +# Extract real version number if necessary +if __version__[0] == '$': + _v = __version__.split() + if len(_v) == 3: + __version__ = _v[1] + +def main(): + verbose = webchecker.VERBOSE + try: + opts, args = getopt.getopt(sys.argv[1:], "qv") + except getopt.error, msg: + print msg + print "usage:", sys.argv[0], "[-qv] ... [rooturl] ..." + return 2 + for o, a in opts: + if o == "-q": + verbose = 0 + if o == "-v": + verbose = verbose + 1 + c = Sucker() + c.setflags(verbose=verbose) + c.urlopener.addheaders = [ + ('User-agent', 'websucker/%s' % __version__), + ] + for arg in args: + print "Adding root", arg + c.addroot(arg) + print "Run..." + c.run() + +class Sucker(webchecker.Checker): + + checkext = 0 + nonames = 1 + + # SAM 11/13/99: in general, URLs are now URL pairs. + # Since we've suppressed name anchor checking, + # we can ignore the second dimension. + + def readhtml(self, url_pair): + url = url_pair[0] + text = None + path = self.savefilename(url) + try: + f = open(path, "rb") + except IOError: + f = self.openpage(url_pair) + if f: + info = f.info() + nurl = f.geturl() + if nurl != url: + url = nurl + path = self.savefilename(url) + text = f.read() + f.close() + self.savefile(text, path) + if not self.checkforhtml(info, url): + text = None + else: + if self.checkforhtml({}, url): + text = f.read() + f.close() + return text, url + + def savefile(self, text, path): + dir, base = os.path.split(path) + makedirs(dir) + try: + f = open(path, "wb") + f.write(text) + f.close() + self.message("saved %s", path) + except IOError, msg: + self.message("didn't save %s: %s", path, str(msg)) + + def savefilename(self, url): + type, rest = urllib.splittype(url) + host, path = urllib.splithost(rest) + path = path.lstrip("/") + user, host = urllib.splituser(host) + host, port = urllib.splitnport(host) + host = host.lower() + if not path or path[-1] == "/": + path = path + "index.html" + if os.sep != "/": + path = os.sep.join(path.split("/")) + path = os.path.join(host, path) + return path + +def makedirs(dir): + if not dir: + return + if os.path.exists(dir): + if not os.path.isdir(dir): + try: + os.rename(dir, dir + ".bak") + os.mkdir(dir) + os.rename(dir + ".bak", os.path.join(dir, "index.html")) + except os.error: + pass + return + head, tail = os.path.split(dir) + if not tail: + print "Huh? Don't know how to make dir", dir + return + makedirs(head) + os.mkdir(dir, 0777) + +if __name__ == '__main__': + sys.exit(main() or 0) -- cgit v1.2.3