changeset 57:83c3f19d7770

made static_file_serving.py work recursively
author Atul Varma <avarma@mozilla.com>
date Mon, 28 Jun 2010 16:46:00 -0700
parents bd71f612d3b1
children 422fcf9774b1
files summitidp/static_file_serving.py
diffstat 1 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/summitidp/static_file_serving.py	Mon Jun 28 13:02:45 2010 -0700
+++ b/summitidp/static_file_serving.py	Mon Jun 28 16:46:00 2010 -0700
@@ -19,11 +19,22 @@
         if path == '/':
             path = '/index.html'
 
+        files = {}
+
+        for dirpath, dirnames, filenames in os.walk(self.root_dir):
+            dirnames[:] = [dirname for dirname in dirnames
+                           if not dirname.startswith('.')]
+            svrdir = dirpath[len(self.root_dir):]
+            for filename in filenames:
+                fullpath = os.path.join(dirpath, filename)
+                svrpath = '/'.join([svrdir, filename])
+                files[svrpath] = fullpath
+
         if path.startswith('/') and environ['REQUEST_METHOD'] == 'GET':
-            filename = path.split('/')[1]
-            if filename in os.listdir(self.root_dir):
+            if path in files:
+                filename = files[path]
                 mimetype, enc = mimetypes.guess_type(filename)
-                f = open(os.path.join(self.root_dir, filename))
+                f = open(filename)
                 start_response('200 OK',
                                [('Content-Type', mimetype)])
                 return wsgiref.util.FileWrapper(f)