diff --git a/git/manifests/init.pp b/git/manifests/init.pp index 4bd5eb8..7f105c0 100644 --- a/git/manifests/init.pp +++ b/git/manifests/init.pp @@ -1,4 +1,6 @@ +# Install Git client tools. +# class git::client { package { "git": @@ -8,32 +10,77 @@ class git::client { } -class git::server inherits git::client { +# Install prequisites for serving Git repositories +# +# === Global variables +# +# $git_datadir: +# Directory where repositories are stored +# +class git::server { - include inetd::server + include git::client - package { ["git-daemon", "gitweb"]: - ensure => installed, - } - - file { "/git": - ensure => "/srv/git", - } - - file { "/var/www/git/gitweb_config.perl": - ensure => present, - source => [ "puppet:///files/git/gitweb_config.perl.${fqdn}", - "puppet:///files/git/gitweb_config.perl", - "puppet:///git/gitweb_config.perl", ], - mode => 0644, - owner => root, - group => root, - require => Package["gitweb"], - } - - inetd::service { "git": - ensure => present, - require => Package["git-daemon"], + if $git_datadir { + file { "${git_datadir}": + ensure => directory, + mode => 0755, + owner => root, + group => root, + } + file { "/srv/git": + ensure => link, + target => "${git_datadir}", + require => File["${git_datadir}"], + } + } else { + file { "/srv/git": + ensure => directory, + mode => 0755, + owner => root, + group => root, + } + } + +} + + +# Install Git daemon +# +class git::daemon inherits git::server { + + package { "git-daemon": + ensure => installed, + } + + include inetd::server + + inetd::service { "git": + ensure => present, + require => [ File["/srv/git"], + Package["git-daemon"] ], + } + +} + + +# Install gitweb +# +class git::gitweb inherits git::server { + + package { "gitweb": + ensure => installed, + } + + file { "/var/www/git/gitweb_config.perl": + ensure => present, + source => [ "puppet:///files/git/gitweb_config.perl.${fqdn}", + "puppet:///files/git/gitweb_config.perl", + "puppet:///git/gitweb_config.perl", ], + mode => 0644, + owner => root, + group => root, + require => Package["gitweb"], } }