Puppet Class: gogs::install

Defined in:
manifests/install.pp

Overview

Parameters:

  • version (Any) (defaults to: $gogs::version)
  • owner (Any) (defaults to: $gogs::owner)
  • group (Any) (defaults to: $gogs::group)
  • installation_directory (Any) (defaults to: $gogs::installation_directory)
  • repository_root (Any) (defaults to: $gogs::repository_root)


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

class gogs::install (

  $version                = $gogs::version,

  $owner                  = $gogs::owner,
  $group                  = $gogs::group,

  $installation_directory = $gogs::installation_directory,
  $repository_root        = $gogs::repository_root,

) {

  file { $repository_root:
    ensure => 'directory',
    owner  => $owner,
    group  => $group,
    notify => Exec["permissions:${repository_root}"],
  }

    -> file { $installation_directory:
      ensure => 'directory',
      owner  => $owner,
      group  => $group,
      notify => Exec["permissions:${installation_directory}"],
    }

    # @todo make log path configurable (app.ini: [log] ROOT_PATH && $::gogs::params::sysconfig[LOGPATH])
    -> file { "${installation_directory}/log":
      ensure => 'directory',
      owner  => $owner,
      group  => $group,
    }

    -> file { 'create:/tmp/download_gogs_from_github.sh':
        ensure => 'file',
        path   => '/tmp/download_gogs_from_github.sh',
        source => 'puppet:///modules/gogs/download.sh',
        owner  => 'root',
        group  => 'root',
        mode   => '0755',
    }

    -> exec { 'download_gogs_from_github':
      command     => '/tmp/download_gogs_from_github.sh',
      user        => $owner,
      group       => $group,
      environment => [
        "PUPPET_GOGS_INSTALLATION_DIRECTORY=${installation_directory}",
        'PUPPET_GOGS_OS=linux',
        "PUPPET_GOGS_ARCH=${::architecture}",
        "PUPPET_GOGS_VERSION=${version}",
      ],
      logoutput   => true,
      notify      => [
        Exec['remove:/tmp/download_gogs_from_github.sh'],
        Service[$gogs::params::service_name]
      ],
    }

  exec { 'remove:/tmp/download_gogs_from_github.sh':
    command     => '/bin/rm -f /tmp/download_gogs_from_github.sh',
    refreshonly => true,
  }

  # just to make sure permissions are fine if owner or group is changed afterwards
  exec { "permissions:${installation_directory}":
    command     => "/bin/chown -Rf ${owner}:${group} ${installation_directory}",
    refreshonly => true,
  }

  # just to make sure permissions are fine if owner or group is changed afterwards
  exec { "permissions:${repository_root}":
    command     => "/bin/chown -Rf ${owner}:${group} ${repository_root}",
    refreshonly => true,
  }

}