Puppet Class: inspircd::install

Inherits:
inspircd::params
Defined in:
manifests/install.pp

Overview

Parameters:

  • version (Any) (defaults to: $inspircd::params::version)
  • modules (Any) (defaults to: [])
  • epoll (Any) (defaults to: $inspircd::params::epoll)
  • kqueue (Any) (defaults to: $inspircd::params::kqueue)
  • user (Any) (defaults to: $inspircd::params::user)
  • base_dir (Any) (defaults to: $inspircd::params::base_dir)
  • binary_dir (Any) (defaults to: $inspircd::params::binary_dir)
  • module_dir (Any) (defaults to: $inspircd::params::module_dir)
  • config_dir (Any) (defaults to: $inspircd::params::config_dir)
  • data_dir (Any) (defaults to: $inspircd::params::data_dir)
  • log_dir (Any) (defaults to: $inspircd::params::log_dir)
  • download_dir (Any) (defaults to: $inspircd::params::download_dir)


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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'manifests/install.pp', line 1

class inspircd::install (
  $version = $inspircd::params::version,
  $modules = [],
  $epoll = $inspircd::params::epoll,
  $kqueue = $inspircd::params::kqueue,
  $user = $inspircd::params::user,
  $base_dir = $inspircd::params::base_dir,
  $binary_dir = $inspircd::params::binary_dir,
  $module_dir = $inspircd::params::module_dir,
  $config_dir = $inspircd::params::config_dir,
  $data_dir = $inspircd::params::data_dir,
  $log_dir = $inspircd::params::log_dir,
  $download_dir = $inspircd::params::download_dir,
) inherits inspircd::params {

  $download = "https://github.com/inspircd/inspircd/archive/v${version}.tar.gz"
  $install_dir = "${download_dir}/inspircd-${version}"

  $gnutls = member($modules, 'ssl_gnutls')
  $openssl = member($modules, 'ssl_openssl')

  $compile_extra_modules = intersection($modules, $extra_modules_list)

  file { $base_dir:
    ensure => 'directory',
  }->

  file { $data_dir:
    ensure => 'directory',
    owner  => $user
  }->

  file { $log_dir:
    ensure => 'directory',
    owner  => $user
  }->

  file { "${log_dir}/startup.log":
    ensure => 'file',
    owner  => $user
  }->

  file { $download_dir:
    ensure => 'directory',
  }->

  exec { 'inspircd wget':
    command => "${path_wget} ${download} -P ${download_dir}",
    creates => "${download_dir}/v${version}.tar.gz",
  }~>

  exec { 'inspircd untar':
    command => "${path_tar} -zxvf ${download_dir}/v${version}.tar.gz -C ${download_dir}",
    creates => $install_dir,
  }~>

  file { "${install_dir}/configure_wrapper.sh":
    content => template('inspircd/configure_wrapper.erb'),
    mode    => '0744',
  }~>

  exec { 'inspircd configure':
    command     => "${install_dir}/configure_wrapper.sh",
    cwd         => $install_dir,
    refreshonly => true,
  }~>

  exec { 'inspircd make':
    command     => $path_make,
    cwd         => $install_dir,
    refreshonly => true,
  }~>

  exec { 'inspircd make install':
    command     => "${path_make} install",
    cwd         => $install_dir,
    refreshonly => true,
  }->

  exec { 'inspircd erase examples directory':
    command => "${path_rm} -R ${config_dir}/examples",
    onlyif  => "${path_ls} -1 ${config_dir}/examples"
  }

}