aboutsummaryrefslogtreecommitdiff
path: root/manifests/gitosis.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/gitosis.pp')
-rw-r--r--manifests/gitosis.pp44
1 files changed, 44 insertions, 0 deletions
diff --git a/manifests/gitosis.pp b/manifests/gitosis.pp
new file mode 100644
index 0000000..819fec4
--- /dev/null
+++ b/manifests/gitosis.pp
@@ -0,0 +1,44 @@
+# This class handles a gitosis installation, with /var/git as the root for
+# git repositories.
+
+class gitosis inherits git {
+ # directory for gitosis user and repositories
+ file { "/var/git":
+ ensure => directory,
+ mode => 0755,
+ owner => gitosis,
+ group => gitosis;
+ }
+
+ # symbolic link
+ file { "/var/cache/git":
+ ensure => "/var/git/repositories",
+ force => true,
+ }
+
+ # the needed packages
+ package { "gitosis": ensure => installed; }
+
+ # alters the user's home dir
+ user { "gitosis":
+ allowdupe => false,
+ comment => "git repository hosting,,,",
+ ensure => present,
+ home => "/var/git",
+ shell => "/bin/sh",
+ groups => [ "gitosis", "puppet" ],
+ require => Group["gitosis"];
+ }
+
+ # ensures that the group exists
+ group { "gitosis":
+ ensure => present,
+ allowdupe => false;
+ }
+
+ # tries to get rid of ugly directory structure
+ file { "/srv/gitosis":
+ ensure => absent,
+ force => true;
+ }
+}