Browse Source

Add trivial ffinfo state to write /etc/freifunk/{roles,sites}

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
Maximilian Wilhelm 7 years ago
parent
commit
4e0412a2bc
2 changed files with 38 additions and 0 deletions
  1. 29 0
      ffinfo/init.sls
  2. 9 0
      ffinfo/list.tmpl

+ 29 - 0
ffinfo/init.sls

@@ -0,0 +1,29 @@
+#
+# Basic Freifunk related information
+#
+
+
+/etc/freifunk:
+  file.directory:
+    - user: root
+    - group: root
+    - mode: 755
+    - makedirs: True
+
+
+# Generate /etc/freifunk/roles file with all roles configured on the node,
+# one on each line.
+/etc/freifunk/roles:
+  file.managed:
+    - source: salt://ffinfo/list.tmpl
+    - template: jinja
+      list: {{ salt['pillar.get']('nodes:' ~ grains['id'] ~ ':roles', []) }}
+
+
+# Generate /etc/freifunk/sites file with all sites configured on the node,
+# one on each line. Empty if no sites configured.
+/etc/freifunk/sites:
+  file.managed:
+    - source: salt://ffinfo/list.tmpl
+    - template: jinja
+      list: {{ salt['pillar.get']('nodes:' ~ grains['id'] ~ ':sites', []) }}

+ 9 - 0
ffinfo/list.tmpl

@@ -0,0 +1,9 @@
+{#- Bloody hack to avoid leading empty line... #}
+{%- set i = list|length %}
+{%- for item in list|sort -%}
+{{ item }}
+{%- set i = i-1 %}
+{%- if i != 0 %}
+{# #}
+{%- endif %}
+{%- endfor %}