Merge pull request #12 from bbinet/better-filtering
Better mirror filtering support
diff --git a/README.rst b/README.rst
index 0223a14..b179bec 100644
--- a/README.rst
+++ b/README.rst
@@ -115,6 +115,7 @@
architectures: amd64
gpgkeys: 460F3999
filter: "!(Name (% *-dbg))"
+ filter_with_deps: true
publisher:
component: example
distributions:
diff --git a/aptly/server/mirrors.sls b/aptly/server/mirrors.sls
index 24ad6f9..24be665 100644
--- a/aptly/server/mirrors.sls
+++ b/aptly/server/mirrors.sls
@@ -77,7 +77,7 @@
aptly_{{ mirror_name }}_mirror:
cmd.run:
- - name: aptly mirror create {% if mirror.get('udebs', False) %}-with-udebs=true {% endif %}{% if mirror.get('sources', False) %}-with-sources=true {% endif %}{% if mirror.get('filter') %}-filter="{{ mirror.filter }}" {% endif %}-architectures={{ mirror.architectures }} {{ mirror_name }} {{ mirror.source }} {{ mirror.distribution }} {{ mirror.components }}
+ - name: aptly mirror create {% if mirror.get('udebs', False) %}-with-udebs=true {% endif %}{% if mirror.get('sources', False) %}-with-sources=true {% endif %}{% if mirror.get('filter') %}-filter="{{ mirror.filter }}" {% endif %}{% if mirror.get('filter_with_deps') %}-filter-with-deps {% endif %}-architectures={{ mirror.architectures }} {{ mirror_name }} {{ mirror.source }} {{ mirror.distribution }} {{ mirror.components }}
{%- if server.source.engine != "docker" %}
- user: {{ server.user.name }}
{%- endif %}
@@ -87,6 +87,19 @@
- file: aptly_wrapper
{%- endif %}
+aptly_{{ mirror_name }}_mirror_edit:
+ cmd.run:
+ - name: aptly mirror edit {% if mirror.get('udebs', False) %}-with-udebs=true {% endif %}{% if mirror.get('sources', False) %}-with-sources=true {% endif %}{% if mirror.get('filter') %}-filter="{{ mirror.filter }}" {% endif %}{% if mirror.get('filter_with_deps') %}-filter-with-deps {% endif %}-architectures={{ mirror.architectures }} {{ mirror_name }}
+ {%- if server.source.engine != "docker" %}
+ - user: {{ server.user.name }}
+ {%- endif %}
+ - onlyif: 'aptly mirror show {{ mirror_name }} | grep -v "^Filter: {{ mirror.get('filter', '') }}$" | grep -q "^Filter: "'
+ {%- if server.source.engine == "docker" %}
+ - require:
+ - file: aptly_wrapper
+ - cmd: aptly_{{ mirror_name }}_mirror
+ {%- endif %}
+
{%- if mirror.get('update', False) == True %}
aptly_{{ mirror_name }}_update:
cmd.run:
@@ -96,6 +109,7 @@
{%- endif %}
- require:
- cmd: aptly_{{ mirror_name }}_mirror
+ - cmd: aptly_{{ mirror_name }}_mirror_edit
{%- if server.source.engine == "docker" %}
- file: aptly_wrapper
{%- endif %}