aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-08 10:01:04 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-11-08 10:01:04 -0800
commit1ce3d883f105c22e431fd7c2d1bff33d8c0f73f5 (patch)
tree6a3e3de62114a40d3967db91de12e129a1925011
parent5a694eed0dffabdb7cdd4d8c8e47b45928f8f797 (diff)
parent89c12e9da6438b5e3c99b4a46ef96a78b862f044 (diff)
Merge pull request #676 from Blechhirn/SplitFix
Fix splitting on case-insensitive file systems
-rwxr-xr-xtools/split.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/tools/split.py b/tools/split.py
index ab1e97ca..f9e338aa 100755
--- a/tools/split.py
+++ b/tools/split.py
@@ -17,7 +17,8 @@ def split_javascript_file(input_filename, output_filename_prefix, max_part_size_
# Variable will contain the source of a Javascript function if we find one during parsing
js_function = None
- # Dictionary with source file as key and an array of functions associated to that source file as value
+ # Dictionary with lower case source file as key and a tupel of case sensitive source file name (first encountered case wins)
+ # and an array of functions associated to that source file as value
function_buckets = {};
output_part_file = None
@@ -37,10 +38,12 @@ def split_javascript_file(input_filename, output_filename_prefix, max_part_size_
# Functions with a known associated source file are stored in a file in the directory `output_filename_prefix`
associated_source_file_base = output_filename_prefix + os.path.realpath(associated_source_file_base)
+ associated_source_file_base_lower = associated_source_file_base.lower()
+
# Add the function to its respective file
- if associated_source_file_base not in function_buckets:
- function_buckets[associated_source_file_base] = []
- function_buckets[associated_source_file_base] += [js_function]
+ if associated_source_file_base_lower not in function_buckets:
+ function_buckets[associated_source_file_base_lower] = [associated_source_file_base, []]
+ function_buckets[associated_source_file_base_lower][1] += [js_function]
# Clear the function read cache
js_function = None
@@ -54,7 +57,7 @@ def split_javascript_file(input_filename, output_filename_prefix, max_part_size_
# An associated file is split into chunks of `max_part_size_in_bytes`
for associated_source_file_base in function_buckets:
# At first we try to name the Javascript source file to match the assoicated source file + `.js`
- js_source_file = associated_source_file_base + ".js"
+ js_source_file = function_buckets[associated_source_file_base][0] + ".js"
# Check if the directory of the Javascript source file exists
js_source_dir = os.path.dirname(js_source_file)
@@ -63,7 +66,7 @@ def split_javascript_file(input_filename, output_filename_prefix, max_part_size_
output_part_file_counter = 0
output_part_file = None
- for js_function in function_buckets[associated_source_file_base]:
+ for js_function in function_buckets[associated_source_file_base][1]:
if output_part_file is None:
output_html_include_file.write("<script type=\"text/javascript\" src=\"" + js_source_file + "\"></script>")
output_part_file = open(js_source_file,'w')
@@ -74,7 +77,7 @@ def split_javascript_file(input_filename, output_filename_prefix, max_part_size_
output_part_file.close()
output_part_file = None
output_part_file_counter += 1
- js_source_file = associated_source_file_base + ".part" + str(output_part_file_counter) + ".js"
+ js_source_file = function_buckets[associated_source_file_base][0] + ".part" + str(output_part_file_counter) + ".js"
if output_part_file is not None:
output_part_file.close()