Merge pull request #84 from dalen/pin_version
[puppet-modules/puppetlabs-apt.git] / manifests / pin.pp
1 # pin.pp
2 # pin a release in apt, useful for unstable repositories
3
4 define apt::pin(
5   $ensure     = present,
6   $packages   = '*',
7   $priority   = 0,
8   $release    = '',
9   $origin     = '',
10   $originator = '',
11   $version    = ''
12 ) {
13
14   include apt::params
15
16   $preferences_d = $apt::params::preferences_d
17
18   if $release != '' {
19     $pin = "release a=${release}"
20   } elsif $origin != '' {
21     $pin = "origin \"${origin}\""
22   } elsif $originator != '' {
23     $pin = "release o=${originator}"
24   } elsif $version != '' {
25     $pin = "version ${version}"
26   } else {
27     $pin = "release a=${name}"
28   }
29
30   file { "${name}.pref":
31     ensure  => $ensure,
32     path    => "${preferences_d}/${name}.pref",
33     owner   => root,
34     group   => root,
35     mode    => '0644',
36     content => template('apt/pin.pref.erb'),
37   }
38 }