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
|
# @summary Manages a single cgit filter.
# @param filtername
# Target filter.
# @param source
# Soruce file of filter, mutually exclusive with content.
# @param content
# Contents of filter, mutually exclusive with source.
# @param file_props
# Passed along to the file resource. Useful for checksums.
# @param type
# If it's a lua or exec filter. Inferred from source filename.
define cgit::filter (
Cgit::Filter_types $filtername = $name,
Optional[Variant[String, Array[String]]] $source = undef,
Optional[String] $content = undef,
Hash $file_props = {},
Enum['lua', 'exec'] $type = stdlib::extname($source) ? {
'.lua' => 'lua',
default => 'exec',
}
) {
include cgit::filter_setup
$dest = "${cgit::filterpath}/${filtername}-filter"
$mode = $type ? {
'lua' => '0444',
'exec' => '0555',
}
file { $dest:
ensure => file,
mode => $mode,
source => $source,
content => $content,
* => $file_props,
}
concat::fragment { "cgit config filter ${filtername}":
target => $cgit::cgitrc,
content => "${filtername}-filter=${type}:${dest}\n",
require => File[$dest],
}
}
|