Don't delete generated files from xmodule-assets

xmodule-assets creates coffeescript files in the output directories. On
its next run, it used to delete the javascript files compiled from those
coffee files. Now it doesn't which should make coffee have to do less
work.

Fixes LMS-451
This commit is contained in:
Calen Pennington
2013-06-14 21:47:22 -04:00
parent f4200127bc
commit eb3e94660b
2 changed files with 16 additions and 4 deletions

View File

@@ -5,6 +5,10 @@ These are notable changes in edx-platform. This is a rolling list of changes,
in roughly chronological order, most recent first. Add your entries at or near
the top. Include a label indicating the component affected.
XModule: Don't delete generated xmodule asset files when compiling (for
instance, when XModule provides a coffeescript file, don't delete
the associated javascript)
Common: Make rake provide better error messages if packages are missing.
Common: Repairs development documentation generation by sphinx.

View File

@@ -121,15 +121,23 @@ def _write_js(output_root, classes):
type=filetype)
contents[filename] = fragment
_write_files(output_root, contents)
_write_files(output_root, contents, {'.coffee': '.js'})
return [output_root / filename for filename in contents.keys()]
def _write_files(output_root, contents):
def _write_files(output_root, contents, generated_suffix_map=None):
_ensure_dir(output_root)
for extra_file in set(output_root.files()) - set(contents.keys()):
extra_file.remove_p()
to_delete = set(file.basename() for file in output_root.files()) - set(contents.keys())
if generated_suffix_map:
for output_file in contents.keys():
for suffix, generated_suffix in generated_suffix_map.items():
if output_file.endswith(suffix):
to_delete.discard(output_file.replace(suffix, generated_suffix))
for extra_file in to_delete:
(output_root / extra_file).remove_p()
for filename, file_content in contents.iteritems():
(output_root / filename).write_bytes(file_content)