summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/group/groupadd.rb
blob: bcc08d9f79cf8623007484d3e91da3f7bedca391 (plain)
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
require 'puppet/provider/nameservice/objectadd'

Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameService::ObjectAdd do
  desc "Group management via `groupadd` and its ilk.

  The default for most platforms

  "

  commands :add => "groupadd", :delete => "groupdel", :modify => "groupmod"

  has_feature :system_groups

  verify :gid, "GID must be an integer" do |value|
    value.is_a? Integer
  end

  def addcmd
    cmd = [command(:add)]
    if gid = @resource.should(:gid)
      unless gid == :absent
        cmd << flag(:gid) << gid
      end
    end
    cmd << "-o" if @resource.allowdupe?
    cmd << "-r" if @resource.system?
    cmd << @resource[:name]

    cmd
  end
end