Fixed regex to actually follow APT requirements

Previous implementation would overwrite the file name and
potentially include characters that would cause apt to ignore
the pref file
This commit is contained in:
François Conil 2014-05-19 15:33:06 +10:00
parent 0da464de35
commit 1891912f84

View file

@ -64,10 +64,6 @@ define apt::pin(
}
$path = $order ? {
'' => "${preferences_d}/${name}.pref",
default => "${preferences_d}/${order}-${name}.pref",
}
# According to man 5 apt_preferences:
# The files have either no or "pref" as filename extension
@ -78,6 +74,10 @@ define apt::pin(
# be silently ignored.
$file_name = regsubst($title, '[^0-9a-z\-_\.]', '_', 'IG')
$path = $order ? {
'' => "${preferences_d}/${file_name}.pref",
default => "${preferences_d}/${order}-${file_name}.pref",
}
file { "${file_name}.pref":
ensure => $ensure,
path => $path,