aboutsummaryrefslogtreecommitdiff
path: root/manifests/subsystem/media/folders.pp
blob: 4495bae98f6973c23f00be70bbc8e757130903dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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",
  }
}