aboutsummaryrefslogtreecommitdiff
path: root/manifests/gitolite.pp
blob: 32910371de34a8f85702a2ac738a65c226ae8229 (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
59
60
61
62
63
64
65
66
67
68
69
# This class handles a gitolite installation, with /var/git as the root for
# git repositories.

class git::gitolite inherits git {
  # the needed packages
  package { "gitolite":
     name   => $::lsbdistcodename ? {
       'wheezy' => 'gitolite',
       default  => 'gitolite3',
     },
     ensure => installed
  }

  # tries to get rid of ugly directory structure
  file { "/srv/gitolite":
    ensure  => absent,
    force   => true,
    backup => false,
    require => User["git"],
  }

  # we also don't need /var/lib/gitolite
  file { "/var/lib/gitolite":
    ensure  => absent,
    force   => true,
    backup => false,
    require => User["git"],
  }

  file { "/var/git/.gitolite.rc":
    ensure  => present,
    owner   => git,
    group   => git,
    mode    => '0600',
    source => "puppet:///modules/git/gitolite.rc.${::lsbdistcodename}",
    require => [ File['/var/git'], User['git'] ],
  }

  file { "/var/git/projects.list":
    ensure  => present,
    owner   => git,
    group   => git,
    mode    => '0644',
    require => [ File['/var/git'], User['git'] ],
  }

  # git-annex integration
  package { 'git-annex':
    ensure => present,
  }

  # wheezy onwards
  # http://git-annex.branchable.com/tips/using_gitolite_with_git-annex/
  file { [ '/var/git/adc', '/var/git/adc/ua' ]:
    ensure  => directory,
    owner   => git,
    group   => git,
    mode    => '0755',
    require => File['/var/git'],
  }

  exec { 'git-annex-shell-copier':
    command => 'cp /usr/share/doc/gitolite/examples/adc/git-annex-shell /var/git/adc/ua/git-annex-shell',
    user    => root,
    creates => '/var/git/adc/ua/git-annex-shell',
    onlyif  => "test -f /usr/share/doc/gitolite/examples/adc/git-annex-shell",
    require => [ Package['git-annex'], File['/var/git/adc/ua'] ],
  }
}