Merge pull request #260 from daenney/zomg-ze-chars

pin: Replace invalid chars with _ in file names.
This commit is contained in:
Ashley Penney 2014-03-05 13:16:24 -05:00
commit 791be559ba
2 changed files with 23 additions and 1 deletions

View file

@ -68,7 +68,17 @@ define apt::pin(
'' => "${preferences_d}/${name}.pref",
default => "${preferences_d}/${order}-${name}.pref",
}
file { "${name}.pref":
# 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')
file { "${file_name}.pref":
ensure => $ensure,
path => $path,
owner => root,

View file

@ -105,4 +105,16 @@ describe 'apt::pin', :type => :define do
}
end
end
describe 'resource title with invalid chars' do
context 'spaces' do
let(:title) { 'oh my god this is not valid' }
it { should contain_file('oh_my_god_this_is_not_valid.pref') }
end
context '#$&*$' do
let(:title) { 'so && many $* invalid @! things' }
it { should contain_file('so____many____invalid____things.pref') }
end
end
end