Adding svn configuration parameter, and docs
authorzane <zane@mochimedia.com>
Thu, 18 Jul 2013 03:32:26 +0000 (20:32 -0700)
committerzane <zane@mochimedia.com>
Thu, 18 Jul 2013 03:32:26 +0000 (20:32 -0700)
README.SVN.markdown
lib/puppet/provider/vcsrepo/svn.rb
lib/puppet/type/vcsrepo.rb

index 489f5bf..f374094 100644 (file)
@@ -32,6 +32,21 @@ You can provide a specific `revision`:
         revision => '1234'
     }
 
+
+Using a specified Subversion configuration directory 
+-----------------------------
+
+Provide a `configuration` parameter which should be a directory path on the local system where your svn configuration
+files are.  Typically, it is /path/to/.subversion:
+
+    vcsrepo { "/path/to/repo":
+        ensure        => present,
+        provider      => svn,
+        source        => "svn://svnrepo/hello/branches/foo",
+        configuration => "/path/to/.subversion"
+    }
+
+
 For sources that use SSH (eg, `svn+ssh://...`)
 ----------------------------------------------
 
index 2dc0fd1..2e7cda5 100644 (file)
@@ -6,7 +6,7 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
   optional_commands :svn      => 'svn',
                     :svnadmin => 'svnadmin'
 
-  has_features :filesystem_types, :reference_tracking, :basic_auth
+  has_features :filesystem_types, :reference_tracking, :basic_auth, :configuration
 
   def create
     if !@resource.value(:source)
@@ -53,6 +53,10 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
       args.push('--force')
     end
 
+    if @resource.value(:configuration)
+      args.push('--config-dir', @resource.value(:configuration))
+    end
+    
     return args
   end
 
index 45ac455..fc20f75 100644 (file)
@@ -30,6 +30,9 @@ Puppet::Type.newtype(:vcsrepo) do
 
   feature :multiple_remotes,
           "The repository tracks multiple remote repositories"
+  
+  feature :configuration,
+         "The configuration directory to use"
 
   ensurable do
     attr_accessor :latest
@@ -176,5 +179,9 @@ Puppet::Type.newtype(:vcsrepo) do
     desc "The remote repository to track"
     defaultto "origin"
   end
+  
+  newparam :configuration, :required_features => [:configuration]  do
+    desc "The configuration directory to use"
+  end
 
 end