class Falcon::Command::Host
def assume_privileges(path)
def assume_privileges(path) stat = File.stat(path) Process::GID.change_privilege(stat.gid) Process::UID.change_privilege(stat.uid) end
def call(container = Async::Container.new)
def call(container = Async::Container.new) container = run(container, parent&.verbose?) container.wait(true) end
def run(container, verbose = false)
def run(container, verbose = false) configuration = Configuration.new(verbose) configuration.load_file(@path) Async.logger.info(self) {"Starting services described by #{@path}..."} assume_privileges(@path) hosts = Hosts.new(configuration) hosts.each do |host| host.run(container) end services = Services.new(configuration) services.each do |service| service.run(container) end return container end