148f9cf0b8a5862e46cba42307fc039518382545
[mirror/dsa-puppet.git] / modules / site / manifests / aptrepo.pp
1 define site::aptrepo (
2         $url='',
3         $suite='',
4         $components=[],
5         $key = undef,
6         $ensure = present
7 ) {
8
9         case $ensure {
10                 present: {
11                         if $key {
12                                 file { "/etc/apt/trusted.gpg.d/${name}.gpg":
13                                         source => $key,
14                                         mode   => '0664',
15                                 }
16                         }
17                 }
18                 absent:  {
19                         if $key {
20                                 file { "/etc/apt/trusted.gpg.d/${name}.gpg":
21                                         ensure => absent,
22                                 }
23                         }
24                 }
25                 default: { fail ( "Unknown ensure value: '$ensure'" ) }
26         }
27
28         case $ensure {
29                 present: {
30                         if !($url and $suite) {
31                                 fail ( "Need both url and suite for $name" )
32                         }
33                 }
34                 default: {}
35         }
36
37         file { "/etc/apt/sources.list.d/${name}.list":
38                 ensure  => $ensure,
39                 content => template('site/aptrepo.erb'),
40                 notify  => Exec['apt-get update'],
41         }
42 }