class UpgradeChecker

Public Class Methods

get_current_version() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 41
def self.get_current_version
  path = File.expand_path('../../../', __FILE__)
  version = File.read("#{path}/VERSION")
  version.strip
  version
end
new() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 9
def initialize
  @config = DockerSync::GlobalConfig.load
end

Public Instance Methods

check_and_warn() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 55
def check_and_warn
  return if ENV['DOCKER_SYNC_SKIP_UPGRADE']

  if Gem::Version.new(last_upgraded_version) <  Gem::Version.new('0.5.6')
    Thor::Shell::Basic.new.say_status 'warning', "If you are upgrading from 0.5.4 or below, please run `brew update && brew upgrade unison` AND `docker-compose down && docker-sync clean` or `docker-sync-stack clean` since you need to recreate the sync container", :red

    unless Thor::Shell::Basic.new.yes?('Sync will fail otherwise. Continue? (y/N)')
      exit 1
    end
  end

  if Gem::Version.new(last_upgraded_version) <  Gem::Version.new('0.5.12')
    Thor::Shell::Basic.new.say_status 'warning', "0.5.12 uses a newer OCALM 4.08.1 version in the Unison image. If you use the unison strategy, please upgrade your local unison to be compiled against OCALM 4.08.1", :red

    unless Thor::Shell::Basic.new.yes?('Sync will fail otherwise. Continue? (y/N)')
      exit 1
    end
  end

  # update the upgrade_status
  @config.update! 'upgrade_status' => "#{UpgradeChecker.get_current_version}"
end
docker_sync_update_check() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 48
def docker_sync_update_check
  gem_name = 'docker-sync'
  current_version = UpgradeChecker.get_current_version
  checker = GemUpdateChecker::Client.new(gem_name, current_version)
  return checker
end
last_upgraded_version() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 21
def last_upgraded_version
  @config['upgrade_status']
end
run() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 13
def run
  return if ENV['DOCKER_SYNC_SKIP_UPGRADE']
  unless should_run
    return
  end
  check_and_warn
end
should_run() click to toggle source
# File lib/docker-sync/upgrade_check.rb, line 25
def should_run
  # get the update_status which is the version of the update hook which has been run already
  upgrade_status = last_upgraded_version
  if upgrade_status == ''
    @config.update! 'upgrade_status' => "#{UpgradeChecker.get_current_version}"
    return
  end

  if Gem::Version.new(upgrade_status) < Gem::Version.new(UpgradeChecker.get_current_version) # thats how we compare the version
    return true
  end

  return false
end