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 filter ${filtername}": target => $::cgit::cgitrc, content => "${filter_name}-filter=${type}:${dest}\n", } }