Basic SVN provider
[puppet_vcsrepo.git] / lib / puppet / type / vcsrepo.rb
1 require 'pathname'
2
3 Puppet::Type.newtype(:vcsrepo) do
4   desc "A local version control repository"
5
6   ensurable
7
8   newparam(:path) do
9     desc "Absolute path to repository"
10     isnamevar
11     validate do |value|
12       path = Pathname.new(value)
13       unless path.absolute?
14         raise ArgumentError, "Path must be absolute: #{path}"
15       end
16     end
17   end
18
19   newparam(:source) do
20     desc "The source URL for the repository"
21     validate do |value|
22       URI.parse(value)
23     end
24   end
25
26   newparam(:fstype) do
27     desc "Filesystem type (for providers that support it, eg subversion)"
28   end
29
30   newproperty(:revision) do
31     desc "The revision of the repository"
32     newvalue(/^\S+$/)
33   end
34
35 end