class nodo::subsystem::media::folders( $base = lookup('nodo::subsystem::media::folders::base', undef, undef, '/var/cache/media'), $cache = lookup('nodo::subsystem::media::folders::cache', undef, undef, directory), $owner = lookup('nodo::subsystem::media::folders::owner', undef, undef, false), $group = lookup('nodo::subsystem::media::folders::group', undef, undef, false) ) { # Removable media folders file { [ "/media/usb", "/media/cdrom", "/media/tablet", "/media/phone" ]: ensure => directory, mode => '0755', } # Local cache for general use file { "/var/cache/${::hostname}": ensure => directory, mode => '0755', } # Local media cache file { "/var/cache/${::hostname}/media": ensure => $cache, mode => '0755', owner => $owner ? { false => undef, default => $owner, }, group => $group ? { false => undef, default => $group, }, } # Link to the media cache, useful to have unique remotes # for git-annex in removable media file { "$base": ensure => "/var/cache/${::hostname}/media", } # Code and load folders file { [ "${base}/code", "${base}/load" ]: ensure => directory, mode => '0755', owner => $owner ? { false => undef, default => $owner, }, group => $group ? { false => undef, default => $group, }, require => File["$base"], } # Data folder is a cache file { "/var/data": ensure => "$base", } }