lib/rorvswild/host.rb
# frozen_string_literal: true module RorVsWild module Host def self.load_config(config) @name = config.dig(:server, :name) end def self.os @os_description ||= `uname -sr`.strip rescue Exception => ex @os_description = RbConfig::CONFIG["host_os"] end def self.user Etc.getlogin end def self.ruby RUBY_DESCRIPTION end def self.rails Rails.version if defined?(Rails) end def self.name @name ||= if gae_instance = ENV["GAE_INSTANCE"] || ENV["CLOUD_RUN_EXECUTION"] gae_instance elsif dyno = ENV["DYNO"] # Heroku dyno.start_with?("run.") ? "run.*" : dyno.start_with?("release.") ? "release.*" : dyno else Socket.gethostname end end def self.pid Process.pid end def self.cwd Dir.pwd end def self.revision Deployment.revision end def self.revision_description Deployment.description end def self.to_h @to_h ||= {os: os, user: user, host: name, ruby: ruby, rails: rails, pid: pid, cwd: cwd, revision: revision}.compact end end end