diff --git a/apt/manifests/init.pp b/apt/manifests/init.pp index ca3e0be..65b4580 100644 --- a/apt/manifests/init.pp +++ b/apt/manifests/init.pp @@ -197,6 +197,8 @@ define apt::package($ensure, $source) { # GPG key id. # $keyserver: # GPG keyserver uri. +# $priority: +# Set priority for this repository. # $use_proxy: # Use apt proxy (if set). Defaults to true. # $use_source: @@ -210,7 +212,8 @@ define apt::package($ensure, $source) { # keyserver => "hkp://keys.gnupg.net", # } # -define apt::repo($source, $dist="", $components="main", $key="", $keyserver="", $use_proxy=true, $use_source=false) { +define apt::repo($source, $dist="", $components="main", $key="", $keyserver="", + $priority="", $use_proxy=true, $use_source=false) { tag("bootstrap") @@ -271,4 +274,15 @@ define apt::repo($source, $dist="", $components="main", $key="", $keyserver="", } } + if $priority { + $origin = regsubst($source, "^([^:]+://)([^/]+)/.*$", "\\2") + file { "/etc/apt/preferences.d/${name}.pref": + ensure => present, + mode => 0644, + owner => root, + group => root, + content => "Package: *\nPin: origin ${origin}\nPin-Priority: ${priority}\n", + } + } + }