Stasiek Michalski 3b66c9
{% set appservices = salt['pillar.get']('profile:matrix:appservices') %}
Stasiek Michalski 73f0a6
4cb669
appservice_pkgs:
Stasiek Michalski 73f0a6
  pkg.installed:
Jacob Michalskie f8a9d8
    - resolve_capabilities: True
Stasiek Michalski 73f0a6
    - pkgs:
Stasiek Michalski 73f0a6
      - git
a64b88
      - nodejs20
80bfb5
      - nodejs20-devel
Stasiek Michalski f4cc7a
      - nodejs-common
Stasiek Michalski 434eee
      - make
Stasiek Michalski 434eee
      - gcc
Stasiek Michalski 434eee
      - gcc-c++
Jacob Michalskie f5ed50
      - cargo
885827
      - yarn
Stasiek Michalski 73f0a6
4cb669
{%- for dir, data in appservices.items() %}
4cb669
{%- set repo = data.get('repo') %}
4cb669
Stasiek Michalski 3b66c9
/var/lib/matrix-synapse/{{ dir }}:
Stasiek Michalski 73f0a6
  file.directory:
Stasiek Michalski 73f0a6
    - user: synapse
Stasiek Michalski 73f0a6
Stasiek Michalski 80833e
/var/log/matrix-synapse/{{ dir }}:
Stasiek Michalski 80833e
  file.directory:
Stasiek Michalski 80833e
    - user: synapse
Stasiek Michalski 80833e
4cb669
{{ repo }}:
Stasiek Michalski 64e281
  git.latest:
Stasiek Michalski 3b66c9
    - branch: {{ data.get('branch', 'master') }}
Stasiek Michalski 3b66c9
    - target: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 3b66c9
    - rev: {{ data.get('branch', 'master') }}
Stasiek Michalski 64e281
    - user: synapse
10cf37
    - force_fetch: True
Stasiek Michalski 64e281
Stasiek Michalski 3b66c9
Stasiek Michalski 3b66c9
{{ dir }}_conf_file:
Stasiek Michalski 164e7d
  file.managed:
Stasiek Michalski 3b66c9
    - name: /var/lib/matrix-synapse/{{ dir }}/config.yaml
Stasiek Michalski 3b66c9
    - source: salt://profile/matrix/files/config-{{ dir }}.yaml
Stasiek Michalski 164e7d
    - template: jinja
Stasiek Michalski 434eee
    - user: synapse
Stasiek Michalski 164e7d
    - require:
Stasiek Michalski 3b66c9
      - file: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 164e7d
    - watch_in:
4cb669
      - service: {{ dir }}_service
Stasiek Michalski 164e7d
Stasiek Michalski 3b66c9
{{ dir }}_appservice_file:
Stasiek Michalski 259175
  file.managed:
Stasiek Michalski 3b66c9
    - name: /var/lib/matrix-synapse/{{ dir }}/{{ dir }}-registration.yaml
Stasiek Michalski 3b66c9
    - source: salt://profile/matrix/files/appservice-{{ dir }}.yaml
Stasiek Michalski a6d9a5
    - user: synapse
Stasiek Michalski a5a827
    - template: jinja
Stasiek Michalski 259175
    - require:
Stasiek Michalski 3b66c9
      - file: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 3b66c9
    - watch_in:
4cb669
      - service: {{ dir }}_service
Stasiek Michalski 3b66c9
Stasiek Michalski 3b66c9
synapse_appservice_{{ dir }}_file:
Stasiek Michalski 3b66c9
  file.managed:
Stasiek Michalski 3b66c9
    - name: /etc/matrix-synapse/appservices/appservice-{{ dir }}.yaml
Stasiek Michalski 3b66c9
    - source: salt://profile/matrix/files/appservice-{{ dir }}.yaml
Stasiek Michalski 3b66c9
    - template: jinja
Stasiek Michalski 3b66c9
    - require:
Stasiek Michalski 3b66c9
      - file: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 259175
    - watch_in:
4cb669
      - service: {{ dir }}_service
Stasiek Michalski 259175
4cb669
{{ dir }}_bootstrap:
Stasiek Michalski ddf40c
  cmd.run:
885827
    - name: yarn install
Stasiek Michalski 3b66c9
    - cwd: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 434eee
    - runas: synapse
4cb669
    - onchanges:
4cb669
      - git: {{ repo }}
Stasiek Michalski 73f0a6
Stasiek Michalski 7a486f
{% if data.get('build') == True %}
Stasiek Michalski 3b66c9
{{ dir }}_build:
Stasiek Michalski 73f0a6
  cmd.run:
885827
    - name: yarn run build
Stasiek Michalski 3b66c9
    - cwd: /var/lib/matrix-synapse/{{ dir }}
Stasiek Michalski 434eee
    - runas: synapse
4cb669
    - onchanges:
4cb669
      - cmd: {{ dir }}_bootstrap
Stasiek Michalski 7a486f
{% endif %}
Stasiek Michalski 73f0a6
Stasiek Michalski 3b66c9
{{ dir }}_systemd_file:
Stasiek Michalski 73f0a6
  file.managed:
Stasiek Michalski 3b66c9
    - name: /etc/systemd/system/{{ dir }}.service
Stasiek Michalski 3b66c9
    - template: jinja
Stasiek Michalski 3b66c9
    - context:
faabbf
        dir: {{ dir }}
918997
        script: {{ data.get('script') }}
Stasiek Michalski 3b66c9
    - source: salt://profile/matrix/files/appservice.service
Stasiek Michalski 73f0a6
    - require_in:
Stasiek Michalski 3b66c9
      - service: {{ dir }}_service
Stasiek Michalski 3b66c9
Stasiek Michalski 3b66c9
{{ dir }}_service:
Stasiek Michalski 3b66c9
  service.running:
Stasiek Michalski 3b66c9
    - name: {{ dir }}
Stasiek Michalski 3b66c9
    - enable: True
Stasiek Michalski 3b66c9
    - require:
Stasiek Michalski 3b66c9
      - service: synapse_service
Stasiek Michalski 3b66c9
Stasiek Michalski 3b66c9
{% endfor %}
Stasiek Michalski c26b01
Jacob Michalskie 923bf0
/var/lib/matrix-synapse/hookshot/passkey.pem:
Stasiek Michalski c26b01
  file.managed:
Jacob Michalskie 923bf0
    - contents_pillar: profile:matrix:appservices:hookshot:passkey
faabbf
    - mode: '0640'
Stasiek Michalski c26b01
    - user: synapse
Sasi Olin 136178
    - group: synapse