Class: Ohai::Application

Inherits:
Object
  • Object
show all
Includes:
Mixlib::CLI
Defined in:
lib/ohai/application.rb

Overview

The Application class is what is called by the Ohai CLI binary. It handles:

- CLI options and attribute arguments
- Collecting data via the Ohai::System class
- Printing the results returned via the Ohai::System class

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit!(msg, err = -1)) ⇒ Object

Log a debug message to the Logger and then exit the application

Parameters:

  • msg (String)

    the message to log

  • err (Integer) (defaults to: -1))

    the exit code



131
132
133
134
# File 'lib/ohai/application.rb', line 131

def exit!(msg, err = -1)
  Ohai::Log.debug(msg)
  Process.exit err
end

.fatal!(msg, err = -1)) ⇒ Object

Log a fatal error message to both STDERR and the Logger, exit the application

Parameters:

  • msg (String)

    the message to log

  • err (Integer) (defaults to: -1))

    the exit code



122
123
124
125
126
# File 'lib/ohai/application.rb', line 122

def fatal!(msg, err = -1)
  STDERR.puts("FATAL: #{msg}")
  Ohai::Log.fatal(msg)
  Process.exit err
end

Instance Method Details

#configure_ohaiObject

parses the CLI options, loads the config file if present, and initializes logging

Returns:

  • void



90
91
92
93
94
95
96
97
# File 'lib/ohai/application.rb', line 90

def configure_ohai
  @attributes = parse_options
  @attributes = nil if @attributes.empty?

  load_workstation_config

  Ohai::Log.init(Ohai.config[:log_location])
end

#runObject

the method called by the Ohai binary to actually run the whole application

Returns:

  • void



79
80
81
82
83
84
85
# File 'lib/ohai/application.rb', line 79

def run
  elapsed = Benchmark.realtime do
    configure_ohai
    run_application
  end
  Ohai::Log.debug("Ohai took #{elapsed} total seconds to run.")
end

#run_applicationObject

Passes config and attributes arguments to Ohai::System then prints the results. Called by the run method after config / logging have been initialized

Returns:

  • void



103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/ohai/application.rb', line 103

def run_application
  config[:invoked_from_cli] = true
  config[:logger] = Ohai::Log.with_child
  ohai = Ohai::System.new(config)
  ohai.all_plugins(@attributes)

  if @attributes
    @attributes.each do |a|
      puts ohai.attributes_print(a)
    end
  else
    puts ohai.json_pretty_print
  end
end