Separate fetch and stage steps in Hbc::Installer.

This commit is contained in:
Markus Reiter 2016-12-04 23:13:39 +01:00
parent 7d7ca0cb1a
commit e6d9248787

View File

@ -54,8 +54,27 @@ module Hbc
output output
end end
def fetch
odebug "Hbc::Installer#fetch"
satisfy_dependencies
verify_has_sha if @require_sha && !@force
download
verify
end
def stage
odebug "Hbc::Installer#stage"
extract_primary_container
save_caskfile
rescue StandardError => e
purge_versioned_files
raise e
end
def install def install
odebug "Hbc::Installer.install" odebug "Hbc::Installer#install"
if @cask.installed? && !force if @cask.installed? && !force
raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates
@ -63,20 +82,10 @@ module Hbc
end end
print_caveats print_caveats
fetch
begin stage
satisfy_dependencies
verify_has_sha if @require_sha && !@force
download
verify
extract_primary_container
install_artifacts install_artifacts
save_caskfile
enable_accessibility_access enable_accessibility_access
rescue StandardError => e
purge_versioned_files
raise e
end
puts summary puts summary
end end
@ -89,8 +98,7 @@ module Hbc
def download def download
odebug "Downloading" odebug "Downloading"
download = Download.new(@cask, force: false) @downloaded_path = Download.new(@cask, force: false).perform
@downloaded_path = download.perform
odebug "Downloaded to -> #{@downloaded_path}" odebug "Downloaded to -> #{@downloaded_path}"
@downloaded_path @downloaded_path
end end
@ -107,15 +115,18 @@ module Hbc
def extract_primary_container def extract_primary_container
odebug "Extracting primary container" odebug "Extracting primary container"
FileUtils.mkdir_p @cask.staged_path FileUtils.mkdir_p @cask.staged_path
container = if @cask.container && @cask.container.type container = if @cask.container && @cask.container.type
Container.from_type(@cask.container.type) Container.from_type(@cask.container.type)
else else
Container.for_path(@downloaded_path, @command) Container.for_path(@downloaded_path, @command)
end end
unless container unless container
raise CaskError, "Uh oh, could not figure out how to unpack '#{@downloaded_path}'" raise CaskError, "Uh oh, could not figure out how to unpack '#{@downloaded_path}'"
end end
odebug "Using container class #{container} for #{@downloaded_path}" odebug "Using container class #{container} for #{@downloaded_path}"
container.new(@cask, @downloaded_path, @command).extract container.new(@cask, @downloaded_path, @command).extract
end end
@ -245,6 +256,9 @@ module Hbc
See System Preferences to enable it manually. See System Preferences to enable it manually.
EOS EOS
end end
rescue StandardError => e
purge_versioned_files
raise e
end end
def disable_accessibility_access def disable_accessibility_access
@ -279,7 +293,7 @@ module Hbc
end end
def uninstall def uninstall
odebug "Hbc::Installer.uninstall" odebug "Hbc::Installer#uninstall"
disable_accessibility_access disable_accessibility_access
uninstall_artifacts uninstall_artifacts
purge_versioned_files purge_versioned_files