diff options
Diffstat (limited to 'manifests/lens.pp')
-rw-r--r-- | manifests/lens.pp | 70 |
1 files changed, 27 insertions, 43 deletions
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, + } } } |