Class: UpgradeChecker

Inherits:
Object
  • Object
show all
Includes:
Thor::Shell
Defined in:
lib/docker-sync/upgrade_check.rb

Instance Method Summary collapse

Constructor Details

#initializeUpgradeChecker

Returns a new instance of UpgradeChecker.



8
9
10
# File 'lib/docker-sync/upgrade_check.rb', line 8

def initialize
  @config = DockerSyncConfig::global_config
end

Instance Method Details

#check_and_warnObject



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/docker-sync/upgrade_check.rb', line 46

def check_and_warn
  # this is the upgrade hook for the unison-unox introduction / rename of unison
  if Gem::Version.new(last_upgraded_version) <  Gem::Version.new('0.1.0')
    Thor::Shell::Basic.new.say_status 'warning', 'Please be aware that with the strategy "unison" is now called unison-onesided and you might need to migrate. See https://github.com/EugenMayer/docker-sync/wiki/Migration-Guide for more informations', :red
    unless Thor::Shell::Basic.new.yes?('Shall we continue?')
      exit 1
    end
  end

  # update the upgrade_status
  @config['upgrade_status'] = "#{get_current_version}"
  DockerSyncConfig::global_config_save(@config)
end

#docker_sync_update_checkObject



39
40
41
42
43
44
# File 'lib/docker-sync/upgrade_check.rb', line 39

def docker_sync_update_check
  gem_name = 'docker-sync'
  current_version = get_current_version
  checker = GemUpdateChecker::Client.new(gem_name, current_version)
  return checker
end

#get_current_versionObject



34
35
36
37
# File 'lib/docker-sync/upgrade_check.rb', line 34

def get_current_version
  path = File.expand_path('../../../', __FILE__)
  return File.read("#{path}/VERSION")
end

#last_upgraded_versionObject



19
20
21
# File 'lib/docker-sync/upgrade_check.rb', line 19

def last_upgraded_version
  @config['upgrade_status'] || ''
end

#runObject



12
13
14
15
16
17
# File 'lib/docker-sync/upgrade_check.rb', line 12

def run
  unless should_run
    return
  end
  check_and_warn
end

#should_runObject



23
24
25
26
27
28
29
30
31
# File 'lib/docker-sync/upgrade_check.rb', line 23

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 == '' || Gem::Version.new(upgrade_status) < Gem::Version.new(get_current_version) # thats how we compare the version
    return true
  end

  return false
end