mirror of
https://github.com/etlegacy/Update-Installer.git
synced 2024-11-10 14:41:50 +00:00
Use bzip2 in the updater test if the zip tool supports it.
On platforms where the zip tool does not support bzip2, the updater will still support decompression of bzip2 .zip files because the updater uses a separate library for zip decompression.
This commit is contained in:
parent
d0ca137fb6
commit
364443be24
1 changed files with 17 additions and 1 deletions
|
@ -34,6 +34,22 @@ def replace_vars(src_file,dest_file,vars)
|
|||
end
|
||||
end
|
||||
|
||||
def zip_supports_bzip2(zip_tool)
|
||||
# 'zip -h' returns "Zip <Version>" on the second line
|
||||
# This will break if the major version exceeds 9
|
||||
zip_major_version = /Zip ([0-9\.]+)/.match(`#{zip_tool} -h`.lines.to_a[1])[1][0..0].to_i
|
||||
return zip_major_version >= 3
|
||||
end
|
||||
|
||||
BZIP2_AVAILABLE = zip_supports_bzip2(ZIP_TOOL)
|
||||
ZIP_FLAGS = "-Z bzip2" if BZIP2_AVAILABLE
|
||||
|
||||
if (BZIP2_AVAILABLE)
|
||||
puts "Using bzip2 compression"
|
||||
else
|
||||
puts "Using plain old deflate compression - the 'zip' tool does not support bzip2"
|
||||
end
|
||||
|
||||
# Remove the install and package dirs if they
|
||||
# already exist
|
||||
FileUtils.rm_rf(INSTALL_DIR)
|
||||
|
@ -52,7 +68,7 @@ end
|
|||
# Create the update archive containing the new app
|
||||
Dir.mkdir(PACKAGE_DIR)
|
||||
FileUtils.cp(NEWAPP_NAME,"#{PACKAGE_DIR}/#{APP_NAME}")
|
||||
system("#{ZIP_TOOL} #{PACKAGE_DIR}/app-pkg.zip -j #{PACKAGE_DIR}/#{APP_NAME}")
|
||||
system("#{ZIP_TOOL} #{ZIP_FLAGS} #{PACKAGE_DIR}/app-pkg.zip -j #{PACKAGE_DIR}/#{APP_NAME}")
|
||||
FileUtils.rm("#{PACKAGE_DIR}/#{APP_NAME}")
|
||||
|
||||
# Copy the install script and updater to the target
|
||||
|
|
Loading…
Reference in a new issue