diff options
Diffstat (limited to 'lib/puppet/provider/vcsrepo/cvs.rb')
-rw-r--r-- | lib/puppet/provider/vcsrepo/cvs.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/puppet/provider/vcsrepo/cvs.rb b/lib/puppet/provider/vcsrepo/cvs.rb index c42136e..85178f1 100644 --- a/lib/puppet/provider/vcsrepo/cvs.rb +++ b/lib/puppet/provider/vcsrepo/cvs.rb @@ -3,9 +3,9 @@ require File.join(File.dirname(__FILE__), '..', 'vcsrepo') Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo) do desc "Supports CVS repositories/workspaces" - commands :cvs => 'cvs' + 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) @@ -25,6 +25,10 @@ Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo) File.directory?(directory) end + def working_copy_exists? + File.directory?(File.join(@resource.value(:path), 'CVS')) + end + def destroy FileUtils.rm_rf(@resource.value(:path)) end @@ -97,7 +101,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 |