From fed915e097f62dc41a4395eed8d53c213d7f8481 Mon Sep 17 00:00:00 2001 From: "Kazushi (Jam) Marukawa" Date: Sun, 5 Feb 2017 14:34:38 +0900 Subject: [PATCH] Change to remove previous version just before install --- crew | 16 ++++++++++++---- lib/package.rb | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/crew b/crew index 079ce540f..cfba45aa3 100755 --- a/crew +++ b/crew @@ -139,8 +139,9 @@ def upgrade if currentVersion != @pkg.version puts "Updating #{@pkg.name}..." - remove @pkg.name + @pkg.in_upgrade = true resolveDependenciesAndInstall + @pkg.in_upgrade = false else puts "#{@pkg.name} is already up to date." end @@ -157,8 +158,9 @@ def upgrade puts "Updating packages..." toBeUpdated.each do |package| search package - remove @pkg.name + @pkg.in_upgrade = true resolveDependenciesAndInstall + @pkg.in_upgrade = false end puts "Packages have been updated." else @@ -273,7 +275,7 @@ def resolveDependenciesAndInstall resolveDependencies - search origin + search origin, true install rescue InstallError => e abort "#{@pkg.name} failed to install: #{e.to_s}" @@ -354,7 +356,7 @@ def resolveDependencies end 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..." return end @@ -379,6 +381,12 @@ def install dest_dir = target_dir 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 puts "Installing..." install_package dest_dir diff --git a/lib/package.rb b/lib/package.rb index 2beb95c26..846f9966b 100644 --- a/lib/package.rb +++ b/lib/package.rb @@ -6,6 +6,7 @@ class Package class << self attr_reader :dependencies, :is_fake attr_accessor :name, :in_build, :build_from_source + attr_accessor :in_upgrade end def self.depends_on (dependency = nil) @dependencies = [] unless @dependencies