123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # pin.pp
- # pin a release in apt, useful for unstable repositories
- define apt::pin(
- $ensure = present,
- $explanation = "${::caller_module_name}: ${name}",
- $order = '',
- $packages = '*',
- $priority = 0,
- $release = '',
- $origin = '',
- $originator = '',
- $version = ''
- ) {
- include apt::params
- $preferences_d = $apt::params::preferences_d
- if $order != '' and !is_integer($order) {
- fail('Only integers are allowed in the apt::pin order param')
- }
- if $release != '' {
- $pin = "release a=${release}"
- } elsif $origin != '' {
- $pin = "origin \"${origin}\""
- } elsif $originator != '' {
- $pin = "release o=${originator}"
- } elsif $version != '' {
- $pin = "version ${version}"
- } else {
- $pin = "release a=${name}"
- }
- $path = $order ? {
- '' => "${preferences_d}/${name}.pref",
- default => "${preferences_d}/${order}-${name}.pref",
- }
- file { "${name}.pref":
- ensure => $ensure,
- path => $path,
- owner => root,
- group => root,
- mode => '0644',
- content => template('apt/pin.pref.erb'),
- }
- }
|