From 0082372e3c02d24dcea0e458b62c544d3164c05a Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Tue, 1 Feb 2011 16:06:17 +0200 Subject: [PATCH] Initial version of mercurial module --- mercurial/manifests/init.pp | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 mercurial/manifests/init.pp diff --git a/mercurial/manifests/init.pp b/mercurial/manifests/init.pp new file mode 100644 index 0000000..61c5cbc --- /dev/null +++ b/mercurial/manifests/init.pp @@ -0,0 +1,42 @@ +# Install Mercurial. +# +class mercurial::client { + + package { "mercurial": + ensure => installed, + } + +} + +# 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}"], + } + +}