/usr/lib/ruby/vendor_ruby/ohai/application.rb is in ohai 8.4.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #
# Author:: Mathieu Sauve-Frankel <msf@kisoku.net>
# Copyright:: Copyright (c) 2009 Mathieu Sauve-Frankel.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require 'ohai'
require 'ohai/log'
require 'mixlib/cli'
class Ohai::Application
include Mixlib::CLI
option :directory,
:short => "-d DIRECTORY",
:long => "--directory DIRECTORY",
:description => "A directory to add to the Ohai search path"
option :log_level,
:short => "-l LEVEL",
:long => "--log_level LEVEL",
:description => "Set the log level (debug, info, warn, error, fatal)",
:proc => lambda { |l| l.to_sym }
option :log_location,
:short => "-L LOGLOCATION",
:long => "--logfile LOGLOCATION",
:description => "Set the log file location, defaults to STDOUT - recommended for daemonizing",
:proc => nil
option :help,
:short => "-h",
:long => "--help",
:description => "Show this message",
:on => :tail,
:boolean => true,
:show_options => true,
:exit => 0
option :version,
:short => "-v",
:long => "--version",
:description => "Show Ohai version",
:boolean => true,
:proc => lambda {|v| puts "Ohai: #{::Ohai::VERSION}"},
:exit => 0
def initialize
super
# Always switch to a readable directory. Keeps subsequent Dir.chdir() {}
# from failing due to permissions when launched as a less privileged user.
Dir.chdir("/")
end
def run
configure_ohai
configure_logging
run_application
end
def configure_ohai
@attributes = parse_options
@attributes = nil if @attributes.empty?
Ohai::Config.merge!(config)
if Ohai::Config[:directory]
Ohai::Config[:plugin_path] << Ohai::Config[:directory]
end
end
def configure_logging
Ohai::Log.init(Ohai::Config[:log_location])
Ohai::Log.level = Ohai::Config[:log_level]
end
def run_application
ohai = Ohai::System.new
ohai.all_plugins(@attributes)
if @attributes
@attributes.each do |a|
puts ohai.attributes_print(a)
end
else
puts ohai.json_pretty_print
end
end
class << self
# Log a fatal error message to both STDERR and the Logger, exit the application
def fatal!(msg, err = -1)
STDERR.puts("FATAL: #{msg}")
Chef::Log.fatal(msg)
Process.exit err
end
def exit!(msg, err = -1)
Chef::Log.debug(msg)
Process.exit err
end
end
end
|