summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAaron Stone <aaron@serendipity.cx>2015-01-18 21:43:27 -0800
committerAaron Stone <aaron@serendipity.cx>2015-01-18 21:43:27 -0800
commitd08d16bd71e10f439dfa3ff92626aeb38aa95303 (patch)
tree1ac586b7e4561c85590266c7e6ff052dc2e2a6b2 /lib
parentde7bf159c721a1461b7d8a61e98fd024344c7eb5 (diff)
parentdfe5f9cc316a43793da2cb1c4adbc66503907460 (diff)
Merge pull request #218 from dduvnjak/master
Add submodules feature to git provider
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider/vcsrepo/git.rb4
-rw-r--r--lib/puppet/type/vcsrepo.rb9
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/puppet/provider/vcsrepo/git.rb b/lib/puppet/provider/vcsrepo/git.rb
index b1e556d..13e0793 100644
--- a/lib/puppet/provider/vcsrepo/git.rb
+++ b/lib/puppet/provider/vcsrepo/git.rb
@@ -5,7 +5,7 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
commands :git => 'git'
- has_features :bare_repositories, :reference_tracking, :ssh_identity, :multiple_remotes, :user, :depth
+ has_features :bare_repositories, :reference_tracking, :ssh_identity, :multiple_remotes, :user, :depth, :submodules
def create
if @resource.value(:revision) and @resource.value(:ensure) == :bare
@@ -18,7 +18,7 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
if @resource.value(:revision)
checkout
end
- if @resource.value(:ensure) != :bare
+ if @resource.value(:ensure) != :bare && @resource.value(:submodules) == :true
update_submodules
end
end
diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb
index b8836d4..3bf4029 100644
--- a/lib/puppet/type/vcsrepo.rb
+++ b/lib/puppet/type/vcsrepo.rb
@@ -43,6 +43,9 @@ Puppet::Type.newtype(:vcsrepo) do
feature :p4config,
"The provider understands Perforce Configuration"
+ feature :submodules,
+ "The repository contains submodules which can be optionally initialized"
+
ensurable do
attr_accessor :latest
@@ -205,6 +208,12 @@ Puppet::Type.newtype(:vcsrepo) do
desc "The Perforce P4CONFIG environment."
end
+ newparam :submodules, :required_features => [:submodules] do
+ desc "Initialize and update each submodule in the repository."
+ newvalues(:true, :false)
+ defaultto true
+ end
+
autorequire(:package) do
['git', 'git-core']
end