summaryrefslogtreecommitdiff
path: root/manifests/lens.pp
blob: b40f220b762376f11dad318cb0cb34aad3219dfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
define augeas::lens (
  $ensure=present,
  $lens_dir,
  $lens_file='',
  $test_file=''
) {

  $lenses_dir = "/usr/share/augeas/lenses"

  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"
 
  file { "${lens_file_dest}":
    ensure => $ensure,
    source => $lens_file_source,
  }

  file { "${test_file_dest}":
    ensure => $ensure,
    source => $test_file_source,
  }

  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}"]
  }
}