summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/group/pw.rb
blob: a054d1ff12af3d0497dac2409b88804d70a7cc1b (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
33
34
require 'puppet/provider/nameservice/pw'

Puppet::Type.type(:group).provide :pw, :parent => Puppet::Provider::NameService::PW do
  desc "Group management via `pw`.

  Only works on FreeBSD.

  "

  commands :pw => "/usr/sbin/pw"
  defaultfor :operatingsystem => :freebsd

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

  def addcmd
    cmd = [command(:pw), "groupadd", @resource[:name]]
    if gid = @resource.should(:gid)
      unless gid == :absent
        cmd << flag(:gid) << gid
      end
    end

    # Apparently, contrary to the man page, groupadd does
    # not accept -o.
    #if @parent[:allowdupe] == :true
    #    cmd << "-o"
    #end

    cmd
  end
end