Avoid re-downloading files that are already downloaded (#460)
* Writes a .emsdk_version file to output directories using the name (which contains a version number and/or hash) once all installation steps have completed successfully. * If that file exists, skip downloading/installation hooks.
This commit is contained in:
10
emsdk.py
10
emsdk.py
@@ -1885,6 +1885,14 @@ class Tool(object):
|
||||
print("Skipped installing " + self.name + ", already installed.")
|
||||
return True
|
||||
|
||||
version_id = self.name
|
||||
version_file_path = os.path.join(self.installation_path(), '.emsdk_version')
|
||||
if os.path.isfile(version_file_path):
|
||||
with open(version_file_path, 'r') as version_file:
|
||||
if version_id == version_file.read():
|
||||
print("Skipped installing " + self.name + ", already installed.")
|
||||
return True
|
||||
|
||||
print("Installing tool '" + str(self) + "'..")
|
||||
url = self.download_url()
|
||||
|
||||
@@ -1945,6 +1953,8 @@ class Tool(object):
|
||||
# leftover installation files.
|
||||
if self.is_installed():
|
||||
self.cleanup_temp_install_files()
|
||||
with open(version_file_path, 'w') as version_file:
|
||||
version_file.write(version_id)
|
||||
else:
|
||||
print("Warning: The installation of '" + str(self) + "' seems to have failed, but no error was detected. Either something went wrong with the installation, or this may indicate an internal emsdk error.")
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user