puppet/mercurial/manifests/init.pp
Ossi Salmi 2b9e847b22 Renamed {git,mercurial,svn}::client as git, mercurial and svn
Added {git,mercurial,svn}::client classes with deprecation warning for
backwards compatilibity.
2012-12-05 13:05:33 +02:00

50 lines
1,022 B
Puppet

# Install Mercurial.
#
class mercurial {
package { "mercurial":
ensure => installed,
}
}
class mercurial::client {
warning("mercurial::client is deprecated, include mercurial instead")
include mercurial
}
# Clone repository.
#
# === Parameters
#
# $name:
# Destination directory.
# $source:
# Source URL.
# $ensure:
# Revision. Defaults to tip.
#
define mercurial::clone($source, $ensure="tip") {
exec { "hg-clone-${name}":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
command => "hg -y clone -r ${ensure} ${source} ${name}",
creates => $name,
require => Package["mercurial"],
}
exec { "hg-pull-${name}":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
cwd => $name,
command => "hg -y pull -u -r ${ensure}",
onlyif => $ensure ? {
"tip" => "hg -y in",
default => "test $(hg -y id -i) != ${ensure}",
},
require => Exec["hg-clone-${name}"],
}
}