Class: CavalerieWeb::EnsureSetupIsCorrectSequence

Inherits:
BaseSequence
  • Object
show all
Defined in:
lib/cavalerie_web/sequences/ensure_setup_is_correct_sequence.rb

Class Method Summary collapse

Class Method Details

.rescue(error) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/cavalerie_web/sequences/ensure_setup_is_correct_sequence.rb', line 32

def self.rescue error
  case error.class.to_s

  when "RequiredPluginMissingError"
    missing_plugins = eval(error.message)
    missing_plugins.each do |plugin_name|
      puts Message.warning "Plugin \"#{plugin_name.capitalize}\" is not installed. Installing..."
      VagrantHelper.plugin_install plugin_name
    end

  when "RequiredFolderUnavailableError"
    missing_folders_paths = eval(error.message)
    puts Message.warning error_message = "#{missing_folders_paths.count} required folder(s) are missing"
    missing_folders_paths.each { |folder_path| FileFolderManager.create_folder_if_not_exist folder_path }
  else
    raise error
  end
end

.startObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/cavalerie_web/sequences/ensure_setup_is_correct_sequence.rb', line 5

def self.start
  threads = []

  SetupManager.initialize_system

  setup_status = SetupManager.get_setup_status

  if setup_status["is_vagrant_installed?"] != true
    threads << Thread.new { SetupManager.ensure_vagrant_is_installed }
  end

  if setup_status["is_virtualbox_installed?"] != true
    threads << Thread.new { SetupManager.ensure_virtualbox_is_installed }
  end

  if setup_status["are_required_plugins_installed?"] != true
    threads << Thread.new { SetupManager.ensure_required_plugins_are_installed }
  end

  threads << Thread.new { SetupManager.ensure_environment_variables_are_set }
  threads << Thread.new { SetupManager.ensure_required_folders_are_available }

  SequenceManager.set_threads_timeout threads

  puts Message.success "Setup is correct."
end