diff --git a/apt/repositories.sls b/apt/repositories.sls index 4373b01..032cc47 100644 --- a/apt/repositories.sls +++ b/apt/repositories.sls @@ -58,12 +58,13 @@ {%- set r_keyserver = args.keyserver if args.keyserver is defined else apt_map.default_keyserver %} {%- for type in args.type|d(['binary']) %} - {%- set r_type = 'deb-src' if type == 'source' else 'deb' %} + {%- set r_type = 'deb-src' if type == 'source' else 'deb' %} + {%- set r_file = args.filename if args.filename is defined else repo ~ '-' ~ type ~ '.list' %} {{ r_type }} {{ repo }}: pkgrepo.managed: - name: {{ r_type }} {{ r_options }} {{ r_url }} {{ r_distro }} {{ r_comps }} - - file: {{ sources_list_dir }}/{{ repo }}-{{ type }}.list + - file: {{ sources_list_dir }}/{{ r_file }} {# You can use either keyid+keyserver or key_url. If both are provided the latter will be used. #} {% if args.key_url is defined %} diff --git a/pillar.example b/pillar.example index c4e4ad7..6f313a0 100644 --- a/pillar.example +++ b/pillar.example @@ -98,6 +98,9 @@ apt: comps: [main, contrib, non-free] key_url: https://ftp-master.debian.org/keys/archive-key-10.asc raspbian: + # If you want to use a particular filename under /etc/apt/sources.list.d + # set it here, with extension included + filename: my_raspbian_repo.list distro: stable url: http://archive.raspbian.org/raspbian type: [source] diff --git a/test/integration/repositories/controls/repositories_spec.rb b/test/integration/repositories/controls/repositories_spec.rb index 1a65d1e..c08eef9 100644 --- a/test/integration/repositories/controls/repositories_spec.rb +++ b/test/integration/repositories/controls/repositories_spec.rb @@ -48,4 +48,20 @@ ) end end + + describe file('/etc/apt/sources.list.d/my_raspbian_repo.list') do + it { should exist } + it { should be_owned_by 'root' } + it { should be_grouped_into 'root' } + its('mode') { should cmp '0644' } + its(:content) do + should match( + %r{deb-src http://archive.raspbian.org/raspbian stable main} + ) + end + end + + describe file('/etc/apt/sources.list.d/raspbian-binary.list') do + it { should_not exist } + end end diff --git a/test/salt/pillar/repositories.sls b/test/salt/pillar/repositories.sls index 642b9dc..97aeb3b 100644 --- a/test/salt/pillar/repositories.sls +++ b/test/salt/pillar/repositories.sls @@ -19,3 +19,11 @@ apt: arch: [amd64] comps: [] key_url: https://cli-assets.heroku.com/apt/release.key + raspbian: + # If you want to use a particular filename under /etc/apt/sources.list.d + # set it here, with extension included + filename: my_raspbian_repo.list + distro: stable + url: http://archive.raspbian.org/raspbian + type: [source] + key_url: https://archive.raspbian.org/raspbian.public.key