Sha256: de08658c137250847c4db3b6af40a1e48e474e21c9f59d81403cfaf31fd304e0

Contents?: true

Size: 1.08 KB

Versions: 18

Compression:

Stored size: 1.08 KB

Contents

require 'etc'

Ohai.plugin(:Passwd) do
  provides 'etc', 'current_user'

  def fix_encoding(str)
    str.force_encoding(Encoding.default_external) if str.respond_to?(:force_encoding)
    str
  end

  collect_data do
    unless etc
      etc Mash.new

      etc[:passwd] = Mash.new
      etc[:group] = Mash.new

      Etc.passwd do |entry|
        user_passwd_entry = Mash.new(:dir => entry.dir, :gid => entry.gid, :uid => entry.uid, :shell => entry.shell, :gecos => entry.gecos)
        user_passwd_entry.each_value {|v| fix_encoding(v)}
        entry_name = fix_encoding(entry.name)
        etc[:passwd][entry_name] = user_passwd_entry unless etc[:passwd].has_key?(entry_name)
      end

      Etc.group do |entry|
        group_entry = Mash.new(:gid => entry.gid,
                               :members => entry.mem.map {|u| fix_encoding(u)})

        etc[:group][fix_encoding(entry.name)] = group_entry
      end
    end

    unless current_user
      current_user fix_encoding(Etc.getpwuid(Process.euid).name)
    end
  end

  collect_data(:windows) do
    # Etc returns nil on Windows
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
ohai-8.10.0 lib/ohai/plugins/passwd.rb
ohai-8.9.0 lib/ohai/plugins/passwd.rb
ohai-8.8.1 lib/ohai/plugins/passwd.rb
ohai-8.8.0 lib/ohai/plugins/passwd.rb
ohai-8.7.0 lib/ohai/plugins/passwd.rb
ohai-8.6.0 lib/ohai/plugins/passwd.rb
ohai-8.6.0.alpha.1 lib/ohai/plugins/passwd.rb
ohai-8.6.0.alpha.0 lib/ohai/plugins/passwd.rb
ohai-8.5.0 lib/ohai/plugins/passwd.rb
ohai-8.4.0 lib/ohai/plugins/passwd.rb
ohai-8.3.0 lib/ohai/plugins/passwd.rb
ohai-8.3.0.rc.0 lib/ohai/plugins/passwd.rb
ohai-8.2.0 lib/ohai/plugins/passwd.rb
ohai-8.1.1 lib/ohai/plugins/passwd.rb
ohai-8.1.0 lib/ohai/plugins/passwd.rb
ohai-8.0.1 lib/ohai/plugins/passwd.rb
ohai-7.6.0.rc.1 lib/ohai/plugins/passwd.rb
ohai-7.6.0.rc.0 lib/ohai/plugins/passwd.rb