require_relative 'rcm_file' require_relative 'rcm_package' require_relative 'rcm_service' require 'yaml' module RCM PACKAGES = 'packages' FILES = 'files' SERVICES = 'services' @@wanted = { PACKAGES => [], FILES => [], SERVICES => [] } @@got = { PACKAGES => [], FILES => [], SERVICES => [] } def converge(old_state, new_state) if old_state.is_a?(RCM::File) end end def whachuwant() # Consume config from YAML, and convert it to usable objects in @@wanted. raise 'config.yaml not found.' unless ::File.file?('config.yaml') config = YAML.load_file('config.yaml') config.each do |yaml_objects| yaml_objects.each do |coll, defs| case coll when PACKAGES defs.each do |d| p = RCM::Package.new(d['name'], d['version'], 'idk', d['desired_state']) @@wanted[PACKAGES].push(p) end when FILES defs.each do |d| f = RCM::File.new(d['path'], d['owner'], d['group'], d['mode'], 'idk', 'idk', 'idk', d['']) @@wanted[FILES].push(f) end end end end end def whachugot() end module_function :whachuwant, :whachugot end RCM.whachuwant