class nodo::subsystem::media::folders( $base = hiera('nodo::subsystem::media::folders::base', '/var/cache/media'), $cache = hiera('nodo::subsystem::media::folders::cache', directory), $owner = hiera('nodo::subsystem::media::folders::owner', false), $group = hiera('nodo::subsystem::media::folders::group', 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", } }