Class: Devkitkat::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/devkitkat/config.rb

Constant Summary collapse

DEVKITKAT_FILE_NAME =
'.devkitkat.yml'
HIDDEN_SERVICES =
%w[system]
DEFAULT_APPLICATION_NAME =
'devkitkat'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kit_root) ⇒ Config

Returns a new instance of Config.



11
12
13
14
# File 'lib/devkitkat/config.rb', line 11

def initialize(kit_root)
  @kit_root = kit_root
  @devkitkat_yml = load_config
end

Instance Attribute Details

#devkitkat_ymlObject (readonly)

Returns the value of attribute devkitkat_yml.



9
10
11
# File 'lib/devkitkat/config.rb', line 9

def devkitkat_yml
  @devkitkat_yml
end

#kit_rootObject (readonly)

Returns the value of attribute kit_root.



9
10
11
# File 'lib/devkitkat/config.rb', line 9

def kit_root
  @kit_root
end

Instance Method Details

#all_servicesObject



16
17
18
# File 'lib/devkitkat/config.rb', line 16

def all_services
  services + HIDDEN_SERVICES
end

#applicationObject



64
65
66
# File 'lib/devkitkat/config.rb', line 64

def application
  devkitkat_yml.fetch('application', DEFAULT_APPLICATION_NAME)
end

#machine_driverObject



40
41
42
# File 'lib/devkitkat/config.rb', line 40

def machine_driver
  devkitkat_yml.dig('machine', 'driver') || 'none'
end

#machine_extra_hostsObject



52
53
54
# File 'lib/devkitkat/config.rb', line 52

def machine_extra_hosts
  devkitkat_yml.dig('machine', 'extra_hosts')
end

#machine_extra_write_accessesObject



60
61
62
# File 'lib/devkitkat/config.rb', line 60

def machine_extra_write_accesses
  devkitkat_yml.dig('machine', 'extra_write_accesses')
end

#machine_imageObject



48
49
50
# File 'lib/devkitkat/config.rb', line 48

def machine_image
  devkitkat_yml.dig('machine', 'image')
end

#machine_locationObject



44
45
46
# File 'lib/devkitkat/config.rb', line 44

def machine_location
  devkitkat_yml.dig('machine', 'location') || 'local'
end

#machine_network_modeObject



56
57
58
# File 'lib/devkitkat/config.rb', line 56

def machine_network_mode
  devkitkat_yml.dig('machine', 'network_mode')
end

#resolve!(target, exclude: nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/devkitkat/config.rb', line 20

def resolve!(target, exclude: nil)
  services = if target.nil? || target == 'system'
              %w[system]
            elsif target == 'all'
              all_services
            elsif group = find_group(target)
              services_for_group(group)
            elsif services = find_comma_separated_services(target)
              services
            elsif service = find_service(target)
              [service]
            else
              raise_error(target)
            end

  services = services - exclude if exclude

  services
end

#service_hash(name) ⇒ Object



72
73
74
# File 'lib/devkitkat/config.rb', line 72

def service_hash(name)
  devkitkat_yml.dig('services', name) || {}
end

#variablesObject



68
69
70
# File 'lib/devkitkat/config.rb', line 68

def variables
  devkitkat_yml.fetch('variables', {})
end