class cgit ( String $root = '/var/www/cgit', String $filterpath = '/usr/lib/cgit/extra-filters', String $root_title, String $root_desc, String $about_filter, String $auth_filter, String $source_filter, String $scan_path, Array[String] $clone_url, ) { # TODO figure out where CSS comes from ensure_packages([ 'cgit', ], { ensure => installed }) file { '/etc/cgitrc': ensure => file, content => epp('cgit/cgitrc.epp'), } file { "${root}/logo": ensure => directory, } file { "${root}/logo/logo.png": ensure => file, source => 'puppet:///modules/cgit/logo.png', } file { "${root}/logo/logo_large.png": ensure => file, source => 'puppet:///modules/cgit/logo_large.png', } file { "${root}/root_readme": ensure => file, source => 'puppet:///modules/cgit/root_readme', } file { dirname($filterpath): ensure => directory, } file { $filterpath: ensure => directory, } [$about_filter, $source_filter, $auth_filter].each |$f| { file { "${filterpath}/${f}": ensure => file, source => "puppet:///modules/cgit/filters/${f}", mode => stdlib::extname($f) ? { '.lua' => '0444', default => '0555', }, } } }