X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fpin.pp;h=2ce81fd6bb292fce2eae61e60bf82b2e01bfa048;hb=60e50a9b65dec94fe20734404295e28d9e434a83;hp=9cb4a8e798ba5ef3a0e1caa05275e5ba53137201;hpb=ef7d149d5a6b014b53b12925bb5d6638192ac08d;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/pin.pp b/manifests/pin.pp index 9cb4a8e..2ce81fd 100644 --- a/manifests/pin.pp +++ b/manifests/pin.pp @@ -3,7 +3,7 @@ define apt::pin( $ensure = present, - $explanation = "${::caller_module_name}: ${name}", + $explanation = "${caller_module_name}: ${name}", $order = '', $packages = '*', $priority = 0, @@ -64,11 +64,21 @@ define apt::pin( } + + # According to man 5 apt_preferences: + # The files have either no or "pref" as filename extension + # and only contain alphanumeric, hyphen (-), underscore (_) and period + # (.) characters. Otherwise APT will print a notice that it has ignored a + # file, unless that file matches a pattern in the + # Dir::Ignore-Files-Silently configuration list - in which case it will + # be silently ignored. + $file_name = regsubst($title, '[^0-9a-z\-_\.]', '_', 'IG') + $path = $order ? { - '' => "${preferences_d}/${name}.pref", - default => "${preferences_d}/${order}-${name}.pref", + '' => "${preferences_d}/${file_name}.pref", + default => "${preferences_d}/${order}-${file_name}.pref", } - file { "${name}.pref": + file { "${file_name}.pref": ensure => $ensure, path => $path, owner => root,