Try to retire the site module: move site::aptrepo to base
[mirror/dsa-puppet.git] / modules / base / manifests / aptrepo.pp
diff --git a/modules/base/manifests/aptrepo.pp b/modules/base/manifests/aptrepo.pp
new file mode 100644 (file)
index 0000000..f7c81fc
--- /dev/null
@@ -0,0 +1,42 @@
+define base::aptrepo (
+       $url='',
+       $suite='',
+       $components=[],
+       $key = undef,
+       $ensure = present
+) {
+
+       case $ensure {
+               present: {
+                       if $key {
+                               file { "/etc/apt/trusted.gpg.d/${name}.gpg":
+                                       source => $key,
+                                       mode   => '0664',
+                               }
+                       }
+               }
+               absent:  {
+                       if $key {
+                               file { "/etc/apt/trusted.gpg.d/${name}.gpg":
+                                       ensure => absent,
+                               }
+                       }
+               }
+               default: { fail ( "Unknown ensure value: '$ensure'" ) }
+       }
+
+       case $ensure {
+               present: {
+                       if !($url and $suite) {
+                               fail ( "Need both url and suite for $name" )
+                       }
+               }
+               default: {}
+       }
+
+       file { "/etc/apt/sources.list.d/${name}.list":
+               ensure  => $ensure,
+               content => template('base/aptrepo.erb'),
+               notify  => Exec['apt-get update'],
+       }
+}