Commit b580aa0f by jkarni

Merge pull request #1024 from edx/jkarni/fix/IOError

Catch IOError and ignore if OS X companion file
parents 99bf6417 e26b1be3
...@@ -28,19 +28,26 @@ def import_static_content(modules, course_loc, course_data_path, static_content_ ...@@ -28,19 +28,26 @@ def import_static_content(modules, course_loc, course_data_path, static_content_
for dirname, _, filenames in os.walk(static_dir): for dirname, _, filenames in os.walk(static_dir):
for filename in filenames: for filename in filenames:
try:
content_path = os.path.join(dirname, filename) content_path = os.path.join(dirname, filename)
if verbose: if verbose:
log.debug('importing static content %s...', content_path) log.debug('importing static content %s...', content_path)
try:
with open(content_path, 'rb') as f:
data = f.read()
except IOError:
if filename.startswith('._'):
# OS X "companion files". See http://www.diigo.com/annotated/0c936fda5da4aa1159c189cea227e174
continue
# Not a 'hidden file', then re-raise exception
raise
fullname_with_subpath = content_path.replace(static_dir, '') # strip away leading path from the name fullname_with_subpath = content_path.replace(static_dir, '') # strip away leading path from the name
if fullname_with_subpath.startswith('/'): if fullname_with_subpath.startswith('/'):
fullname_with_subpath = fullname_with_subpath[1:] fullname_with_subpath = fullname_with_subpath[1:]
content_loc = StaticContent.compute_location(target_location_namespace.org, target_location_namespace.course, fullname_with_subpath) content_loc = StaticContent.compute_location(target_location_namespace.org, target_location_namespace.course, fullname_with_subpath)
mime_type = mimetypes.guess_type(filename)[0] mime_type = mimetypes.guess_type(filename)[0]
with open(content_path, 'rb') as f:
data = f.read()
content = StaticContent(content_loc, filename, mime_type, data, import_path=fullname_with_subpath) content = StaticContent(content_loc, filename, mime_type, data, import_path=fullname_with_subpath)
...@@ -58,8 +65,6 @@ def import_static_content(modules, course_loc, course_data_path, static_content_ ...@@ -58,8 +65,6 @@ def import_static_content(modules, course_loc, course_data_path, static_content_
#store the remapping information which will be needed to subsitute in the module data #store the remapping information which will be needed to subsitute in the module data
remap_dict[fullname_with_subpath] = content_loc.name remap_dict[fullname_with_subpath] = content_loc.name
except:
raise
return remap_dict return remap_dict
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment