Puppet Class: minecraft::source

Defined in:
manifests/source.pp

Overview



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
# File 'manifests/source.pp', line 1

class minecraft::source {

  $jar_name = 'minecraft_server'

  case $minecraft::source {
    /^(\d+)\.(\d+)\.(\d+)$/,    # Matches Semantic Versioning for vanilla Minecraft, see http://semver.org/
    /^(\d{2})w(\d{2})[a-z]$/: { # Matches current versioning scheme for vanilla Minecraft snapshots, uses the same download source URL
      $download = "https://s3.amazonaws.com/Minecraft.Download/versions/${minecraft::source}/minecraft_server.${minecraft::source}.jar"
    }
    # Downloads latest type of Bukkit server
    'recommended', 'rb', 'stable': {
      $download = 'http://dl.bukkit.org/latest-rb/craftbukkit.jar'
    }
    'beta', 'dev': {
      $download = "http://dl.bukkit.org/latest-${minecraft::source}/craftbukkit-${minecraft::source}.jar"
    }
    default: {
      $download = $minecraft::source
    }
  }

  archive { 'minecraft_server':
    ensure  => 'present',
    source  => $download,
    path    => "${minecraft::install_dir}/minecraft_server.jar",
    require => [User[$minecraft::user],File[$minecraft::install_dir]],
    user    => $minecraft::user,
  }

  file { "${minecraft::install_dir}/minecraft_server.jar":
    ensure  => 'file',
    owner   => $minecraft::user,
    group   => $minecraft::group,
    mode    => '0644',
    require => [User[$minecraft::user],
                Group[$minecraft::group],
                Archive['minecraft_server'],
    ],
  }

  file { "${minecraft::install_dir}/eula.txt":
    ensure  => file,
    owner   => $minecraft::user,
    group   => $minecraft::group,
    content => template('minecraft/eula.txt.erb'),
  }

}