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