summaryrefslogtreecommitdiff
path: root/lib/puppet/type/vcsrepo.rb
diff options
context:
space:
mode:
authorBruce Williams <bruce@codefluency.com>2010-03-13 11:50:28 -0800
committerBruce Williams <bruce@codefluency.com>2010-03-13 11:50:28 -0800
commit7d4244b35e72904e30130cad6d2258f901c16f1a (patch)
tree15eb276403892d2900461990c8dc179b1d280efa /lib/puppet/type/vcsrepo.rb
parent2fe1f689a5a96e6d341b5e15f2e0865e476a20a8 (diff)
Basic CVS support
Diffstat (limited to 'lib/puppet/type/vcsrepo.rb')
-rw-r--r--lib/puppet/type/vcsrepo.rb32
1 files changed, 23 insertions, 9 deletions
diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb
index b093910..7616f41 100644
--- a/lib/puppet/type/vcsrepo.rb
+++ b/lib/puppet/type/vcsrepo.rb
@@ -13,12 +13,20 @@ Puppet::Type.newtype(:vcsrepo) do
def retrieve
prov = @resource.provider
if prov
- if prov.respond_to?(:working_copy_exists?) && prov.working_copy_exists?
- :present
- elsif prov.respond_to?(:bare_exists?) && prov.bare_exists?
- :bare
+ if prov.respond_to?(:bare_exists?)
+ if prov.respond_to?(:working_copy_exists?) && prov.working_copy_exists?
+ :present
+ elsif prov.respond_to?(:bare_exists?) && prov.bare_exists?
+ :bare
+ else
+ :absent
+ end
else
- :absent
+ if prov.exists?
+ :present
+ else
+ :absent
+ end
end
else
:absent
@@ -39,10 +47,7 @@ Puppet::Type.newtype(:vcsrepo) do
end
newparam(:source) do
- desc "The source URL for the repository"
- validate do |value|
- URI.parse(value)
- end
+ desc "The source URI for the repository"
end
newparam(:fstype) do
@@ -54,4 +59,13 @@ Puppet::Type.newtype(:vcsrepo) do
newvalue(/^\S+$/)
end
+ newparam :compression do
+ desc "Compression level (used by CVS)"
+ validate do |amount|
+ unless Integer(amount).between?(0, 6)
+ raise ArgumentError, "Unsupported compression level: #{amount} (expected 0-6)"
+ end
+ end
+ end
+
end