X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fpin.pp;h=21cc3ffdefc0294c0c91c37de474971b94b26869;hb=6283f6cf7214c17efe628858e98d28e5526c79fd;hp=14df14b5b3f370c8ec7bc7978f535ceb15e28548;hpb=bf1bb279986234750138ea089fc8e9f6264f779e;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/pin.pp b/manifests/pin.pp index 14df14b..21cc3ff 100644 --- a/manifests/pin.pp +++ b/manifests/pin.pp @@ -3,33 +3,46 @@ define apt::pin( $ensure = present, + $explanation = "${::caller_module_name}: ${name}", + $order = '', $packages = '*', $priority = 0, $release = '', $origin = '', - $originator = '' + $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 => "${preferences_d}/${name}.pref", + path => $path, owner => root, group => root, mode => '0644', - content => template("apt/pin.pref.erb"), + content => template('apt/pin.pref.erb'), } }