summaryrefslogtreecommitdiff
path: root/lib/puppet/type/vcsrepo.rb
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2010-09-14 09:02:02 +1000
committerJames Turnbull <james@lovedthanlost.net>2010-09-14 09:02:02 +1000
commitf9f8a808faa0e9d6e83f2c5af880c8080ef9776e (patch)
treeae7fd5f44b8fd34e24cbf3dc43213ea1fa81e1c2 /lib/puppet/type/vcsrepo.rb
parente572002ab6b9ce15d446ffdab19353d4da18849c (diff)
parenta71777b4ec097954ac58de537685df096d8a8f63 (diff)
Merge branch 'master' of git://github.com/reductivelabs/puppet-vcsrepo
Diffstat (limited to 'lib/puppet/type/vcsrepo.rb')
-rw-r--r--lib/puppet/type/vcsrepo.rb20
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb
index ff3624b..8b2d93e 100644
--- a/lib/puppet/type/vcsrepo.rb
+++ b/lib/puppet/type/vcsrepo.rb
@@ -28,13 +28,13 @@ Puppet::Type.newtype(:vcsrepo) do
when :present
return true unless [:absent, :purged, :held].include?(is)
when :latest
- if provider.latest?
+ if is == :latest
return true
else
self.debug "%s repo revision is %s, latest is %s" %
[@resource.name, provider.revision, provider.latest]
return false
- end
+ end
end
end
@@ -70,16 +70,12 @@ Puppet::Type.newtype(:vcsrepo) do
def retrieve
prov = @resource.provider
if prov
- if prov.class.feature?(:bare_repositories)
- if prov.working_copy_exists?
- :present
- elsif prov.bare_exists?
- :bare
- else
- :absent
- end
+ if prov.working_copy_exists?
+ prov.latest? ? :latest : :present
+ elsif prov.class.feature?(:bare_repositories) and prov.bare_exists?
+ :bare
else
- prov.exists? ? :present : :absent
+ :absent
end
else
raise Puppet::Error, "Could not find provider"
@@ -121,4 +117,4 @@ Puppet::Type.newtype(:vcsrepo) do
end
end
-end \ No newline at end of file
+end