class Devkitkat::Config
Constants
- DEFAULT_APPLICATION_NAME
- DEVKITKAT_FILE_NAME
- HIDDEN_SERVICES
Attributes
devkitkat_yml[R]
kit_root[R]
Public Class Methods
new(kit_root)
click to toggle source
# File lib/devkitkat/config.rb, line 11 def initialize(kit_root) @kit_root = kit_root @devkitkat_yml = load_config end
Public Instance Methods
all_services()
click to toggle source
# File lib/devkitkat/config.rb, line 16 def all_services services + HIDDEN_SERVICES end
application()
click to toggle source
# File lib/devkitkat/config.rb, line 64 def application devkitkat_yml.fetch('application', DEFAULT_APPLICATION_NAME) end
machine_driver()
click to toggle source
# File lib/devkitkat/config.rb, line 40 def machine_driver devkitkat_yml.dig('machine', 'driver') || 'none' end
machine_extra_hosts()
click to toggle source
# File lib/devkitkat/config.rb, line 52 def machine_extra_hosts devkitkat_yml.dig('machine', 'extra_hosts') end
machine_extra_write_accesses()
click to toggle source
# File lib/devkitkat/config.rb, line 60 def machine_extra_write_accesses devkitkat_yml.dig('machine', 'extra_write_accesses') end
machine_image()
click to toggle source
# File lib/devkitkat/config.rb, line 48 def machine_image devkitkat_yml.dig('machine', 'image') end
machine_location()
click to toggle source
# File lib/devkitkat/config.rb, line 44 def machine_location devkitkat_yml.dig('machine', 'location') || 'local' end
machine_network_mode()
click to toggle source
# File lib/devkitkat/config.rb, line 56 def machine_network_mode devkitkat_yml.dig('machine', 'network_mode') end
resolve!(target, exclude: nil)
click to toggle source
# 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)
click to toggle source
# File lib/devkitkat/config.rb, line 72 def service_hash(name) devkitkat_yml.dig('services', name) || {} end
variables()
click to toggle source
# File lib/devkitkat/config.rb, line 68 def variables devkitkat_yml.fetch('variables', {}) end
Private Instance Methods
config_path()
click to toggle source
# File lib/devkitkat/config.rb, line 114 def config_path File.join(kit_root, DEVKITKAT_FILE_NAME) end
find_comma_separated_services(target)
click to toggle source
# File lib/devkitkat/config.rb, line 98 def find_comma_separated_services(target) return unless target.include?(',') target.split(',').map do |t| find_service(t).tap do |service| raise_error(t) unless service end end end
find_group(target)
click to toggle source
# File lib/devkitkat/config.rb, line 90 def find_group(target) groups.find { |group| group == target } end
find_service(target)
click to toggle source
# File lib/devkitkat/config.rb, line 94 def find_service(target) services.find { |service| service == target } end
groups()
click to toggle source
# File lib/devkitkat/config.rb, line 82 def groups devkitkat_yml['groups']&.keys || [] end
load_config()
click to toggle source
# File lib/devkitkat/config.rb, line 108 def load_config File.read(config_path).yield_self do |content| YAML.load(content) end end
raise_error(target)
click to toggle source
# File lib/devkitkat/config.rb, line 118 def raise_error(target) raise ArgumentError, "The target name #{target} couldn't be resolved" end
services()
click to toggle source
# File lib/devkitkat/config.rb, line 78 def services devkitkat_yml['services']&.keys || [] end
services_for_group(group)
click to toggle source
# File lib/devkitkat/config.rb, line 86 def services_for_group(group) devkitkat_yml.dig('groups', group) || [] end