diff --git a/lib/puppet/provider/vcsrepo/cvs.rb b/lib/puppet/provider/vcsrepo/cvs.rb index d0ee773..f504cb1 100644 --- a/lib/puppet/provider/vcsrepo/cvs.rb +++ b/lib/puppet/provider/vcsrepo/cvs.rb @@ -5,7 +5,7 @@ Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo) optional_commands :cvs => 'cvs' defaultfor :cvs => :exists - has_features :gzip_compression, :reference_tracking + has_features :gzip_compression, :reference_tracking, :modules def create if !@resource.value(:source) @@ -72,7 +72,9 @@ Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo) # When the source: # * Starts with ':' (eg, :pserver:...) def module_name - if (source = @resource.value(:source)) + if (m = @resource.value(:module)) + m + elsif (source = @resource.value(:source)) source[0, 1] == ':' ? File.basename(source) : '.' end end diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 9bf8311..655549a 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -22,6 +22,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :ssh_identity, "The provider supports a configurable SSH identity file" + feature :modules, + "The repository contains modules that can be chosen of" + ensurable do attr_accessor :latest @@ -148,4 +151,8 @@ Puppet::Type.newtype(:vcsrepo) do newparam :identity, :required_features => [:ssh_identity] do desc "SSH identity file" end + + newparam :module, :required_features => [:modules] do + desc "The repository module to manage" + end end