# 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'] ], } }