Skip to content

Commit ab86c80

Browse files
committed
Cleanup tools/file_packager.py and its output. NFC
- Use enumerate() to avoid a counter - (mostly) Fix indentation of generated JS
1 parent 17cbd29 commit ab86c80

File tree

1 file changed

+84
-103
lines changed

1 file changed

+84
-103
lines changed

tools/file_packager.py

Lines changed: 84 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,7 @@ def main():
282282
# standalone calls
283283
if not from_emcc:
284284
ret = '''
285-
var Module = typeof %(EXPORT_NAME)s !== 'undefined' ? %(EXPORT_NAME)s : {};
286-
''' % {"EXPORT_NAME": export_name}
285+
var Module = typeof %(EXPORT_NAME)s !== 'undefined' ? %(EXPORT_NAME)s : {};\n''' % {"EXPORT_NAME": export_name}
287286

288287
ret += '''
289288
if (!Module.expectedDataFileDownloads) {
@@ -294,14 +293,12 @@ def main():
294293
// When running as a pthread, FS operations are proxied to the main thread, so we don't need to
295294
// fetch the .data bundle on the worker
296295
if (Module['ENVIRONMENT_IS_PTHREAD']) return;
297-
var loadPackage = function(metadata) {
298-
'''
296+
var loadPackage = function(metadata) {\n'''
299297

300298
code = '''
301299
function assert(check, msg) {
302300
if (!check) throw msg + new Error().stack;
303-
}
304-
'''
301+
}\n'''
305302

306303
for file_ in data_files:
307304
if not should_ignore(file_['srcpath']):
@@ -428,62 +425,60 @@ def was_seen(name):
428425
}, false, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
429426
'''
430427
create_data = '''
431-
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
428+
// canOwn this data in the filesystem, it is a slide into the heap that will never change
429+
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true);
432430
Module['removeRunDependency']('fp ' + that.name);
433431
'''
434432

435433
if not lz4:
436434
# Data requests - for getting a block of data out of the big archive - have
437435
# a similar API to XHRs
438436
code += '''
439-
/** @constructor */
440-
function DataRequest(start, end, audio) {
441-
this.start = start;
442-
this.end = end;
443-
this.audio = audio;
444-
}
445-
DataRequest.prototype = {
446-
requests: {},
447-
open: function(mode, name) {
448-
this.name = name;
449-
this.requests[name] = this;
450-
Module['addRunDependency']('fp ' + this.name);
451-
},
452-
send: function() {},
453-
onload: function() {
454-
var byteArray = this.byteArray.subarray(this.start, this.end);
455-
this.finish(byteArray);
456-
},
457-
finish: function(byteArray) {
458-
var that = this;
459-
%s
460-
this.requests[this.name] = null;
461-
}
462-
};
437+
/** @constructor */
438+
function DataRequest(start, end, audio) {
439+
this.start = start;
440+
this.end = end;
441+
this.audio = audio;
442+
}
443+
DataRequest.prototype = {
444+
requests: {},
445+
open: function(mode, name) {
446+
this.name = name;
447+
this.requests[name] = this;
448+
Module['addRunDependency']('fp ' + this.name);
449+
},
450+
send: function() {},
451+
onload: function() {
452+
var byteArray = this.byteArray.subarray(this.start, this.end);
453+
this.finish(byteArray);
454+
},
455+
finish: function(byteArray) {
456+
var that = this;
463457
%s
464-
''' % (create_preloaded if use_preload_plugins else create_data, '''
465-
var files = metadata['files'];
466-
for (var i = 0; i < files.length; ++i) {
467-
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
468-
}
469-
''')
458+
this.requests[this.name] = null;
459+
}
460+
};
470461
471-
counter = 0
472-
for file_ in data_files:
462+
var files = metadata['files'];
463+
for (var i = 0; i < files.length; ++i) {
464+
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
465+
}\n''' % (create_preloaded if use_preload_plugins else create_data)
466+
467+
for (counter, file_) in enumerate(data_files):
473468
filename = file_['dstpath']
474469
dirname = os.path.dirname(filename)
475470
basename = os.path.basename(filename)
476471
if file_['mode'] == 'embed':
477472
# Embed
478473
data = base64_encode(utils.read_binary(file_['srcpath']))
479-
code += '''var fileData%d = '%s';\n''' % (counter, data)
480-
code += ('''Module['FS_createDataFile']('%s', '%s', decodeBase64(fileData%d), true, true, false);\n'''
474+
indent = ' '
475+
code += indent
476+
code += "var fileData%d = '%s';\n" % (counter, data)
477+
code += indent
478+
code += ("Module['FS_createDataFile']('%s', '%s', decodeBase64(fileData%d), true, true, false);\n"
481479
% (dirname, basename, counter))
482-
counter += 1
483480
elif file_['mode'] == 'preload':
484481
# Preload
485-
counter += 1
486-
487482
metadata_el = {
488483
'filename': file_['dstpath'],
489484
'start': file_['data_start'],
@@ -501,14 +496,12 @@ def was_seen(name):
501496
# Get the big archive and split it up
502497
use_data = '''
503498
// Reuse the bytearray from the XHR as the source for file reads.
504-
DataRequest.prototype.byteArray = byteArray;
505-
'''
499+
DataRequest.prototype.byteArray = byteArray;\n'''
506500
use_data += '''
507-
var files = metadata['files'];
508-
for (var i = 0; i < files.length; ++i) {
509-
DataRequest.prototype.requests[files[i].filename].onload();
510-
}
511-
'''
501+
var files = metadata['files'];
502+
for (var i = 0; i < files.length; ++i) {
503+
DataRequest.prototype.requests[files[i].filename].onload();
504+
}\n'''
512505
use_data += (" Module['removeRunDependency']('datafile_%s');\n"
513506
% js_manipulation.escape_for_js_string(data_target))
514507

@@ -723,7 +716,7 @@ def was_seen(name):
723716
# add Node.js support code, if necessary
724717
node_support_code = ''
725718
if support_node:
726-
node_support_code = r'''
719+
node_support_code = '''
727720
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
728721
require('fs').readFile(packageName, function(err, contents) {
729722
if (err) {
@@ -733,9 +726,8 @@ def was_seen(name):
733726
}
734727
});
735728
return;
736-
}
737-
'''
738-
ret += r'''
729+
}\n'''
730+
ret += '''
739731
function fetchRemotePackage(packageName, packageSize, callback, errback) {
740732
%(node_support_code)s
741733
var xhr = new XMLHttpRequest();
@@ -787,28 +779,25 @@ def was_seen(name):
787779
788780
function handleError(error) {
789781
console.error('package error:', error);
790-
};
791-
''' % {'node_support_code': node_support_code}
782+
};\n''' % {'node_support_code': node_support_code}
792783

793-
code += r'''
784+
code += '''
794785
function processPackageData(arrayBuffer) {
795786
assert(arrayBuffer, 'Loading data file failed.');
796787
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
797788
var byteArray = new Uint8Array(arrayBuffer);
798789
var curr;
799790
%s
800791
};
801-
Module['addRunDependency']('datafile_%s');
802-
''' % (use_data, js_manipulation.escape_for_js_string(data_target))
792+
Module['addRunDependency']('datafile_%s');\n''' % (use_data, js_manipulation.escape_for_js_string(data_target))
803793
# use basename because from the browser's point of view,
804794
# we need to find the datafile in the same dir as the html file
805795

806-
code += r'''
807-
if (!Module.preloadResults) Module.preloadResults = {};
808-
'''
796+
code += '''
797+
if (!Module.preloadResults) Module.preloadResults = {};\n'''
809798

810799
if use_preload_cache:
811-
code += r'''
800+
code += '''
812801
function preloadFallback(error) {
813802
console.error(error);
814803
console.error('falling back to default preload behavior');
@@ -838,40 +827,36 @@ def was_seen(name):
838827
}
839828
, preloadFallback);
840829
841-
if (Module['setStatus']) Module['setStatus']('Downloading...');
842-
'''
830+
if (Module['setStatus']) Module['setStatus']('Downloading...');\n'''
843831
else:
844832
# Not using preload cache, so we might as well start the xhr ASAP,
845833
# potentially before JS parsing of the main codebase if it's after us.
846834
# Only tricky bit is the fetch is async, but also when runWithFS is called
847835
# is async, so we handle both orderings.
848-
ret += r'''
849-
var fetchedCallback = null;
850-
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
851-
852-
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
853-
if (fetchedCallback) {
854-
fetchedCallback(data);
855-
fetchedCallback = null;
856-
} else {
857-
fetched = data;
858-
}
859-
}, handleError);
860-
'''
861-
862-
code += r'''
863-
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
864-
if (fetched) {
865-
processPackageData(fetched);
866-
fetched = null;
836+
ret += '''
837+
var fetchedCallback = null;
838+
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
839+
840+
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
841+
if (fetchedCallback) {
842+
fetchedCallback(data);
843+
fetchedCallback = null;
867844
} else {
868-
fetchedCallback = processPackageData;
845+
fetched = data;
869846
}
870-
'''
847+
}, handleError);\n'''
848+
849+
code += '''
850+
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
851+
if (fetched) {
852+
processPackageData(fetched);
853+
fetched = null;
854+
} else {
855+
fetchedCallback = processPackageData;
856+
}\n'''
871857

872858
ret += '''
873-
function runWithFS() {
874-
'''
859+
function runWithFS() {\n'''
875860
ret += code
876861
ret += '''
877862
}
@@ -880,15 +865,14 @@ def was_seen(name):
880865
} else {
881866
if (!Module['preRun']) Module['preRun'] = [];
882867
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
883-
}
884-
'''
868+
}\n'''
885869

886870
if separate_metadata:
887871
_metadata_template = '''
888872
Module['removeRunDependency']('%(metadata_file)s');
889-
}
873+
}
890874
891-
function runMetaWithFS() {
875+
function runMetaWithFS() {
892876
Module['addRunDependency']('%(metadata_file)s');
893877
var REMOTE_METADATA_NAME = Module['locateFile'] ? Module['locateFile']('%(metadata_file)s', '') : '%(metadata_file)s';
894878
var xhr = new XMLHttpRequest();
@@ -900,25 +884,22 @@ def was_seen(name):
900884
xhr.open('GET', REMOTE_METADATA_NAME, true);
901885
xhr.overrideMimeType('application/json');
902886
xhr.send(null);
903-
}
887+
}
904888
905-
if (Module['calledRun']) {
889+
if (Module['calledRun']) {
906890
runMetaWithFS();
907-
} else {
891+
} else {
908892
if (!Module['preRun']) Module['preRun'] = [];
909893
Module["preRun"].push(runMetaWithFS);
910-
}
911-
''' % {'metadata_file': os.path.basename(jsoutput + '.metadata')}
894+
}\n''' % {'metadata_file': os.path.basename(jsoutput + '.metadata')}
912895

913896
else:
914897
_metadata_template = '''
915-
}
916-
loadPackage(%s);
917-
''' % json.dumps(metadata)
898+
}
899+
loadPackage(%s);\n''' % json.dumps(metadata)
918900

919901
ret += '''%s
920-
})();
921-
''' % _metadata_template
902+
})();\n''' % _metadata_template
922903

923904
if force or len(data_files):
924905
if jsoutput is None:

0 commit comments

Comments
 (0)