1 |
# should be replaced by vcsrepo |
2 |
# https://github.com/reductivelabs/puppet-vcsrepo |
3 |
# but not integrated in puppet directly for the moment |
4 |
class subversion { |
5 |
|
6 |
|
7 |
class server { |
8 |
package { "subversion-server": |
9 |
ensure => installed, |
10 |
} |
11 |
} |
12 |
|
13 |
# TODO create proper hook directory ( see zarb.org ) |
14 |
# create documentation |
15 |
# - group who can commit |
16 |
|
17 |
# define repository ($group => "svn") { |
18 |
# # $name ==> lieu du checkout |
19 |
# exec { "svnadmin create $name": |
20 |
# path => "/usr/bin:/usr/sbin:/bin", |
21 |
# creates => $name |
22 |
# } |
23 |
# # TODO complete documentation |
24 |
# file { "$name": |
25 |
# mode => 660 |
26 |
# recurse => true |
27 |
# } |
28 |
# # file pour les hooks |
29 |
# } |
30 |
|
31 |
|
32 |
class client { |
33 |
package { subversion: |
34 |
ensure => installed, |
35 |
} |
36 |
} |
37 |
|
38 |
# TODO ensure that subversion ishere |
39 |
# allow to configure the snapshot refresh interval |
40 |
define snapshot($source, $refresh = '*/5', $user = 'root') { |
41 |
exec { "/usr/bin/svn co $source $name": |
42 |
creates => $name, |
43 |
user => $user, |
44 |
} |
45 |
|
46 |
cron { "update $name": |
47 |
command => "cd $name && /usr/bin/svn update -q", |
48 |
user => $user, |
49 |
minute => $refresh |
50 |
} |
51 |
} |
52 |
} |