Change to remove previous version just before install

parent d47fad3f
...@@ -139,8 +139,9 @@ def upgrade ...@@ -139,8 +139,9 @@ def upgrade
if currentVersion != @pkg.version if currentVersion != @pkg.version
puts "Updating #{@pkg.name}..." puts "Updating #{@pkg.name}..."
remove @pkg.name @pkg.in_upgrade = true
resolveDependenciesAndInstall resolveDependenciesAndInstall
@pkg.in_upgrade = false
else else
puts "#{@pkg.name} is already up to date." puts "#{@pkg.name} is already up to date."
end end
...@@ -157,8 +158,9 @@ def upgrade ...@@ -157,8 +158,9 @@ def upgrade
puts "Updating packages..." puts "Updating packages..."
toBeUpdated.each do |package| toBeUpdated.each do |package|
search package search package
remove @pkg.name @pkg.in_upgrade = true
resolveDependenciesAndInstall resolveDependenciesAndInstall
@pkg.in_upgrade = false
end end
puts "Packages have been updated." puts "Packages have been updated."
else else
...@@ -273,7 +275,7 @@ def resolveDependenciesAndInstall ...@@ -273,7 +275,7 @@ def resolveDependenciesAndInstall
resolveDependencies resolveDependencies
search origin search origin, true
install install
rescue InstallError => e rescue InstallError => e
abort "#{@pkg.name} failed to install: #{e.to_s}" abort "#{@pkg.name} failed to install: #{e.to_s}"
...@@ -354,7 +356,7 @@ def resolveDependencies ...@@ -354,7 +356,7 @@ def resolveDependencies
end end
def install def install
if @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name } if !@pkg.in_upgrade && @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name }
puts "Package #{@pkg.name} already installed, skipping..." puts "Package #{@pkg.name} already installed, skipping..."
return return
end end
...@@ -379,6 +381,12 @@ def install ...@@ -379,6 +381,12 @@ def install
dest_dir = target_dir dest_dir = target_dir
end end
# remove it just before the file copy
if @pkg.in_upgrade
puts "Removing since upgrade..."
remove @pkg.name
end
# install filelist, dlist and binary files # install filelist, dlist and binary files
puts "Installing..." puts "Installing..."
install_package dest_dir install_package dest_dir
......
...@@ -6,6 +6,7 @@ class Package ...@@ -6,6 +6,7 @@ class Package
class << self class << self
attr_reader :dependencies, :is_fake attr_reader :dependencies, :is_fake
attr_accessor :name, :in_build, :build_from_source attr_accessor :name, :in_build, :build_from_source
attr_accessor :in_upgrade
end end
def self.depends_on (dependency = nil) def self.depends_on (dependency = nil)
@dependencies = [] unless @dependencies @dependencies = [] unless @dependencies
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment