Report abuse

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
$svn_root = "/var/lib/svn"
$trac_root = "/var/lib/trac"

class subversion {
        package { "subversion": ensure => installed }
        class client {
        ...
        }
        class server {
                file { $svn_root:
                        ensure  => directory,
                        owner   => www-data,
                        group   => www-data,
                        mode    => 755,
                }
        ...
        }
        define repo() {
                exec { "svnadmin create $svn_root/${name}":
                        creates => "$svn_root/${name}",
                        require => Package["subversion"],
                        notify  => Exec["chown -R www-data $svn_root/${name}"],
                }
                exec { "chown -R www-data $svn_root/${name}":
                        refreshonly     => true,
                }
        }

}
class trac {
        package { "trac": ensure => installed }
        class server {
                file { $trac_root:
                        ensure  => directory,
                        owner   => www-data,
                        group   => www-data,
                        mode    => 755,
                }
        }
        define instance() {
                exec { "trac-admin $trac_root/${name} initenv ${name} sqlite:db/trac.db svn $svn_root/${name}":
                        creates => "$trac_root/${name}",
                        require => Package["trac"],
                        notify  => Exec["chown -R www-data $trac_root/${name}"],
                }
                exec { "chown -R www-data $trac_root/${name}":
                        refreshonly     => true,
                }
                file { "$trac_root/${name}/conf/trac.ini":
                        ensure => present,
                        mode => 444,
                        owner => www-data,
                        group => root,
                        content => template("subversion/trac/${name}.ini.erb"),
                        require => Exec["trac-admin $trac_root/${name} initenv ${name} sqlite:db/trac.db svn $svn_root/${name}"],
                }
        }
}