summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/group/groupadd.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider/group/groupadd.rb')
-rw-r--r--lib/puppet/provider/group/groupadd.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/puppet/provider/group/groupadd.rb b/lib/puppet/provider/group/groupadd.rb
new file mode 100644
index 000000000..4c204ddf6
--- /dev/null
+++ b/lib/puppet/provider/group/groupadd.rb
@@ -0,0 +1,29 @@
+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"
+
+ verify :gid, "GID must be an integer" do |value|
+ value.is_a? Integer
+ end
+
+ def addcmd
+ cmd = [command(:add)]
+ if gid = @model[:gid]
+ unless gid == :absent
+ cmd << flag(:gid) << "'%s'" % @model[:gid]
+ end
+ end
+ if @model[:allowdupe] == :true
+ cmd << "-o"
+ end
+ cmd << @model[:name]
+
+ return cmd.join(" ")
+ end
+end
+
+# $Id$