apt: Add apt::setting defined type.
[puppet-modules/puppetlabs-apt.git] / manifests / params.pp
index 20ad8d8dd785263a3e5a43549b2df46844012eae..3aba99e3112b1ae68761a2f57ca149bffbb0fc98 100644 (file)
@@ -1,29 +1,57 @@
 class apt::params {
   $root           = '/etc/apt'
   $provider       = '/usr/bin/apt-get'
+  $sources_list   = "${root}/sources.list"
   $sources_list_d = "${root}/sources.list.d"
-  $apt_conf_d     = "${root}/apt.conf.d"
+  $conf_d         = "${root}/apt.conf.d"
+  $preferences    = "${root}/preferences"
   $preferences_d  = "${root}/preferences.d"
 
-  case $::lsbdistid {
-    'linuxmint': {
-      $distid = $::lsbdistcodename ? {
-        'debian' => 'debian',
-        default  => 'ubuntu',
-      }
-      $distcodename = $::lsbdistcodename ? {
-        'debian' => 'wheezy',
-        'qiana'  => 'trusty',
-        'petra'  => 'saucy',
-        'olivia' => 'raring',
-        'nadia'  => 'quantal',
-        'maya'   => 'precise',
-      }
+  if $::osfamily != 'Debian' {
+    fail('This module only works on Debian or derivatives like Ubuntu')
+  }
+
+  $config_files = {
+    'conf'   => {
+      'path' => $conf_d,
+      'ext'  => '',
+    },
+    'pref'   => {
+      'path' => $preferences_d,
+      'ext'  => '',
+    },
+    'list'   => {
+      'path' => $sources_list_d,
+      'ext'  => '.list',
     }
+  }
+
+  $file_defaults = {
+    'owner' => 'root',
+    'group' => 'root',
+    'mode'  => '0644',
+  }
+
+  case $::lsbdistid {
     'ubuntu', 'debian': {
       $distid = $::lsbdistid
       $distcodename = $::lsbdistcodename
     }
+    'linuxmint': {
+      if $::lsbdistcodename == 'debian' {
+        $distid = 'debian'
+        $distcodename = 'wheezy'
+      } else {
+        $distid = 'ubuntu'
+        $distcodename = $::lsbdistcodename ? {
+          'qiana'  => 'trusty',
+          'petra'  => 'saucy',
+          'olivia' => 'raring',
+          'nadia'  => 'quantal',
+          'maya'   => 'precise',
+        }
+      }
+    }
     '': {
       fail('Unable to determine lsbdistid, is lsb-release installed?')
     }
@@ -32,46 +60,16 @@ class apt::params {
     }
   }
   case $distid {
-    'debian': {
-      case $distcodename {
-        'squeeze': {
-          $backports_location = 'http://backports.debian.org/debian-backports'
-          $legacy_origin       = true
-          $origins             = ['${distro_id} oldstable',
-                                  '${distro_id} ${distro_codename}-security',
-                                  '${distro_id} ${distro_codename}-lts']
-        }
-        'wheezy': {
-          $backports_location = 'http://ftp.debian.org/debian/'
-          $legacy_origin      = false
-          $origins            = ['origin=Debian,archive=stable,label=Debian-Security']
-        }
-        default: {
-          $backports_location = 'http://http.debian.net/debian/'
-          $legacy_origin      = false
-          $origins            = ['origin=Debian,archive=stable,label=Debian-Security']
-        }
-      }
-    }
     'ubuntu': {
       case $distcodename {
         'lucid': {
-          $backports_location = 'http://us.archive.ubuntu.com/ubuntu'
           $ppa_options        = undef
-          $legacy_origin      = true
-          $origins            = ['${distro_id} ${distro_codename}-security']
         }
-        'precise', 'trusty': {
-          $backports_location = 'http://us.archive.ubuntu.com/ubuntu'
+        'precise', 'trusty', 'utopic', 'vivid': {
           $ppa_options        = '-y'
-          $legacy_origin      = true
-          $origins            = ['${distro_id}:${distro_codename}-security']
         }
         default: {
-          $backports_location = 'http://old-releases.ubuntu.com/ubuntu'
           $ppa_options        = '-y'
-          $legacy_origin      = true
-          $origins            = ['${distro_id}:${distro_codename}-security']
         }
       }
     }