Class: CavalerieWeb::SetupManager

Inherits:
Object
  • Object
show all
Defined in:
lib/cavalerie_web/managers/setup_manager.rb

Class Method Summary collapse

Class Method Details

.ask_for_root_privilegesObject



16
17
18
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 16

def self.ask_for_root_privileges
  run_sudo_command "echo 'Root access granted'"
end

.ensure_environment_variables_are_setObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 46

def self.ensure_environment_variables_are_set
  unset_environment_variables = []
  Config.get_environment_variables.each do |environment_variable|
    unset_environment_variables << environment_variable[1][:name] unless ENV[environment_variable[1][:name]]
  end

  if unset_environment_variables.count > 0
    abort Message.error "#{unset_environment_variables.count} environment variable(s) are unset. Please run \"cavalerie init\" to resolve this problem."
  end
end

.ensure_required_folders_are_availableObject



57
58
59
60
61
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 57

def self.ensure_required_folders_are_available
  if missing_folders_paths = is_a_required_folder_unavailable?
    raise RequiredFolderUnavailableError, missing_folders_paths
  end
end

.ensure_required_plugins_are_installedObject



38
39
40
41
42
43
44
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 38

def self.ensure_required_plugins_are_installed
  if missing_plugins = is_a_required_plugin_missing?
    raise RequiredPluginMissingError, missing_plugins
  else
    update_setup_status "are_required_plugins_installed?", true
  end
end

.ensure_vagrant_is_installedObject



20
21
22
23
24
25
26
27
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 20

def self.ensure_vagrant_is_installed
  begin
    raise VagrantNotInstalledError unless is_vagrant_installed?
    update_setup_status "is_vagrant_installed?", true
  rescue VagrantNotInstalledError
    abort Message.error "Vagrant isn't installed. Please visit https://www.vagrantup.com for installation details."
  end
end

.ensure_virtualbox_is_installedObject



29
30
31
32
33
34
35
36
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 29

def self.ensure_virtualbox_is_installed
  begin
    raise VirtualBoxNotInstalledError unless is_virtualbox_installed?
    update_setup_status "is_virtualbox_installed?", true
  rescue VirtualBoxNotInstalledError
    abort Message.error "VirtualBox isn't installed. Please visit https://www.virtualbox.org/wiki/Downloads for installation details."
  end
end

.get_setup_statusObject



63
64
65
66
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 63

def self.get_setup_status
  setup_status_file = File.read "#{$configs_path}/setup_status.json"
  parsed = JSON.parse setup_status_file
end

.initialize_systemObject

Initialization



6
7
8
9
10
11
12
13
14
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 6

def self.initialize_system
  $sites_folder_path = ENV[Config.get_environment_variables[:sites][:name]]
  $shared_folder_path = ENV[Config.get_environment_variables[:shared][:name]]
  $mysql_folder_path = ENV[Config.get_environment_variables[:mysql][:name]]
  $export_folder_path = ENV[Config.get_environment_variables[:export][:name]]
  $credentials_folder_path = $shared_folder_path + "/_credentials"
  $samples_folder_path = $shared_folder_path + "/_samples"
  $db_dumps_folder_path = $shared_folder_path + "/_db_dumps"
end

.reset_setup_statusObject



75
76
77
78
79
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 75

def self.reset_setup_status
  setup_status_file_default = "#{$configs_path}/setup_status.default.json"
  setup_status_file = "#{$configs_path}/setup_status.json"
  FileUtils.cp setup_status_file_default, setup_status_file
end

.update_setup_status(setup_status, value) ⇒ Object



68
69
70
71
72
73
# File 'lib/cavalerie_web/managers/setup_manager.rb', line 68

def self.update_setup_status setup_status, value
  setup_status_file = File.read "#{$configs_path}/setup_status.json"
  parsed = JSON.parse setup_status_file
  parsed[setup_status.to_s] = value
  File.open("#{$configs_path}/setup_status.json", 'w') { |file| file << parsed.to_json }
end