summaryrefslogtreecommitdiff
path: root/manifests/filter.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/filter.pp')
-rw-r--r--manifests/filter.pp53
1 files changed, 53 insertions, 0 deletions
diff --git a/manifests/filter.pp b/manifests/filter.pp
new file mode 100644
index 0000000..2dda015
--- /dev/null
+++ b/manifests/filter.pp
@@ -0,0 +1,53 @@
+define cgit::filter (
+ String $filtername = $name,
+ Optional[String] $source = undef,
+ Optional[String] $content = undef,
+ Hash $file_props = {},
+ Enum['lua', 'exec'] $type = stdlib::extname($source) ? {
+ '.lua' => 'lua',
+ default => 'exec',
+ }
+) {
+
+ $valid_filters = [
+ 'about',
+ 'auth',
+ 'commit',
+ 'email',
+ 'owner',
+ 'source',
+ ]
+
+ if ! member($valid_filters, $filtername) {
+ crit("${filtername} not a valid cgit filter")
+ }
+
+ $dest = "${cgit::filterpath}/${filtername}-filter"
+
+ file { $dest:
+ ensure => file,
+ mode => type ? {
+ 'lua' => '0444',
+ 'exec' => '0555',
+ }
+ source => $source,
+ content => $content,
+ * => $file_props,
+ }
+
+ concat::fragment { "cgit config ${}":
+ target => $::cgit::cgitrc,
+ content => "${filter_name}-filter=${type}:${dest}\n",
+ }
+
+ [$about_filter, $source_filter].each |$f| {
+ file { "${filterpath}/${f}":
+ ensure => file,
+ source => "puppet:///modules/cgit/filters/${f}",
+ mode => stdlib::extname($f) ? {
+ '.lua' => '0444',
+ default => '0555',
+ },
+ }
+ }
+}