From 1658e07b4e4930e72fb7e75fa74db5e490afcc13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Fri, 23 Mar 2012 23:45:40 +0100 Subject: Simplify augeas::lens, export $lens_dir variable from augeas::base and create tests directory. --- manifests/base.pp | 13 ++++++++++- manifests/lens.pp | 70 +++++++++++++++++++++---------------------------------- 2 files changed, 39 insertions(+), 44 deletions(-) (limited to 'manifests') diff --git a/manifests/base.pp b/manifests/base.pp index 8f9d557..b9976fa 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -1,7 +1,18 @@ class augeas::base { + $lens_dir = "/usr/share/augeas/lenses/contrib" # ensure no file not managed by puppet ends up in there. - file { "/usr/share/augeas/lenses/contrib": + file { "${lens_dir}": + ensure => directory, + recurse => true, + purge => true, + force => true, + mode => 0644, + owner => "root", + group => "root", + } + + file { "${lens_dir}/tests": ensure => directory, recurse => true, purge => true, diff --git a/manifests/lens.pp b/manifests/lens.pp index b40f220..109dd38 100644 --- a/manifests/lens.pp +++ b/manifests/lens.pp @@ -1,56 +1,40 @@ define augeas::lens ( $ensure=present, - $lens_dir, - $lens_file='', - $test_file='' + $lens_source, + $test_source=false ) { - $lenses_dir = "/usr/share/augeas/lenses" + include augeas::base - file { "${lenses_dir}/tests": - ensure => directory - } - -# $lens_file_source = $lens_file ? { -# '' => $lens_dir ? { -# '' => fail "Cannot determine lens file for ${name}", -# default => "${lens_dir}/${name}.aug" -# }, -# default => $lens_file -# } - - - $lens_file_source = "${lens_dir}/${name}.aug" - $lens_file_dest = "${lenses_dir}/${name}.aug" - -# $test_file_source = $test_file ? { -# '' => $lens_dir ? { -# '' => fail "Cannot determine test file for ${name}", -# default => "${lens_dir}/tests/test_${name}.aug" -# }, -# default => $test_file -# } - - $test_file_source = "${lens_dir}/tests/test_${name}.aug" - $test_file_dest = "${lenses_dir}/tests/test_${name}.aug" + $lens_dest = "${augeas::base::lens_dir}/${name}.aug" + $test_dest = "${augeas::base::lens_dir}/tests/test_${name}.aug" - file { "${lens_file_dest}": + file { "${lens_dest}": ensure => $ensure, - source => $lens_file_source, + source => $lens_source, +# We should actually run the test when the lens is changed +# but we need to know if the test exists... +# notify => Exec["Typecheck lens ${name}", "Test lens ${name}"] + notify => Exec["Typecheck lens ${name}"] } - file { "${test_file_dest}": - ensure => $ensure, - source => $test_file_source, + exec { "Typecheck lens ${name}": + command => "augparse -I ${augeas::base::lens_dir} ${lens_dest} || (rm -f ${lens_dest} && exit 1)", + require => File["${lens_dest}"], + refreshonly => true, } - exec { "Typecheck lens": - command => "augparse -I ${lenses_dir} ${lens_file_dest} || (rm -f ${lens_file_dest} && exit 1)", - require => File["${lens_file_dest}"] - } - - exec { "Test lens": - command => "augparse -I ${lenses_dir} ${test_file_dest} || (rm -f ${lens_file_dest} && rm -f ${test_file_dest} && exit 1)", - require => File["${lens_file_dest}", "${test_file_dest}"] + if $test_source { + file { "${test_dest}": + ensure => $ensure, + source => $test_source, + notify => Exec["Test lens ${name}"] + } + + exec { "Test lens ${name}": + command => "augparse -I ${augeas::base::lens_dir} ${test_dest} || (rm -f ${lens_dest} && rm -f ${test_dest} && exit 1)", + require => File["${lens_dest}", "${test_dest}"], + refreshonly => true, + } } } -- cgit v1.2.3