Method: Inspec::Resources::DarwinGroup#groups

Defined in:
lib/resources/groups.rb

#groupsObject



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/resources/groups.rb', line 164

def groups
  group_info = inspec.command('dscacheutil -q group').stdout.split("\n\n")

  groups = []
  regex = /^([^:]*?)\s*:\s(.*?)\s*$/
  group_info.each do |data|
    groups << inspec.parse_config(data, assignment_regex: regex).params
  end

  # Convert the `dscacheutil` groups to match `inspec.etc_group.entries`
  groups.each { |g| g['gid'] = g['gid'].to_i }
  groups.each do |g|
    next if g['users'].nil?
    g['members'] = g.delete('users')
    g['members'].tr!(' ', ',')
  end
end