From 33be443516e788ead58f4d9b9973d315716a756a Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Mon, 24 Jan 2011 16:27:42 +0200 Subject: [PATCH] Added support for "ensure => latest" to util::extract::tar --- util/manifests/init.pp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/util/manifests/init.pp b/util/manifests/init.pp index 4a9ca2b..025e60d 100644 --- a/util/manifests/init.pp +++ b/util/manifests/init.pp @@ -4,6 +4,8 @@ # # $name: # Destination directory. +# $ensure: +# If 'latest', remove target and re-extract when source file changes. # $source: # File to extract. # $strip: @@ -19,7 +21,19 @@ # source => "/usr/local/src/moin-1.8.8.tar.gz", #} # -define util::extract::tar($source, $strip=0, $preserve=false) { +define util::extract::tar($source, $ensure=present, $strip=0, $preserve=false) { + + case $ensure { + latest: { + exec { "tar-rmdir-${name}": + path => "/bin:/usr/bin:/sbin:/usr/sbin", + command => "rm -fr ${name}", + before => File["${name}"], + subscribe => File["${source}"], + refreshonly => true, + } + } + } file { "${name}": ensure => directory, @@ -40,10 +54,10 @@ define util::extract::tar($source, $strip=0, $preserve=false) { $command = "${cat} ${source} | tar xf - --strip-components=${strip} -C ${name} --no-same-owner --no-same-permissions" } - exec { "extract-tar-${name}": + exec { "tar-extract-${name}": path => "/bin:/usr/bin:/sbin:/usr/sbin", command => $command, - require => [ File["${name}"], ], + require => File["${name}"], unless => "test -n \"$(ls -A ${name})\"", }