Remove old metadata when installing with --force.

This commit is contained in:
Markus Reiter 2017-03-11 18:55:16 +01:00
parent 666ab1438c
commit 31d7d6e5f3
2 changed files with 8 additions and 10 deletions

View File

@ -32,7 +32,6 @@ module Hbc
end
def metadata_path(timestamp = :latest, create = false)
return nil unless metadata_versioned_container_path.respond_to?(:join)
if create && timestamp == :latest
raise CaskError, "Cannot create metadata path when timestamp is :latest"
end

View File

@ -295,16 +295,15 @@ module Hbc
end
def save_caskfile
timestamp = :now
create = true
savedir = @cask.metadata_subdir("Casks", timestamp, create)
if Dir.entries(savedir).size > 2
# should not happen
raise CaskAlreadyInstalledError, @cask unless force
savedir.rmtree
FileUtils.mkdir_p savedir
unless (old_savedirs = Pathname.glob(@cask.metadata_path("*"))).empty?
old_savedirs.each(&:rmtree)
end
FileUtils.copy(@cask.sourcefile_path, savedir) if @cask.sourcefile_path
return unless @cask.sourcefile_path
savedir = @cask.metadata_subdir("Casks", :now, true)
savedir.mkpath
FileUtils.copy @cask.sourcefile_path, savedir
end
def uninstall