From 07902c3067fc501e7882a8d1be4d9e96143ae15a Mon Sep 17 00:00:00 2001 From: Micke Nordin Date: Mon, 20 Nov 2023 10:24:56 +0100 Subject: [PATCH] Install mattermost --- playbooks/apt.yaml | 1 + playbooks/mattermost.yaml | 48 +++++++++++++++++++++++++ scripts/get_mattermost_url.sh | 7 ++++ templates/mattermost-desktop.desktop.j2 | 11 ++++++ 4 files changed, 67 insertions(+) create mode 100644 playbooks/mattermost.yaml create mode 100755 scripts/get_mattermost_url.sh create mode 100644 templates/mattermost-desktop.desktop.j2 diff --git a/playbooks/apt.yaml b/playbooks/apt.yaml index 59f1f52..8292f31 100644 --- a/playbooks/apt.yaml +++ b/playbooks/apt.yaml @@ -53,6 +53,7 @@ - wdisplays - wget - wl-clipboard + - wlr-randr - wofi - xdg-desktop-portal - xdg-desktop-portal-wlr diff --git a/playbooks/mattermost.yaml b/playbooks/mattermost.yaml new file mode 100644 index 0000000..96c81c0 --- /dev/null +++ b/playbooks/mattermost.yaml @@ -0,0 +1,48 @@ +--- +- name: Set up mattermost + hosts: localhost + vars: + uid: "{{ lookup('env','USER') }}" + mattermost_url: "{{ lookup('ansible.builtin.pipe','../scripts/get_mattermost_url.sh') }}" + connection: local + become: false + tasks: + - name: Have mattermost allready installed + stat: + path: /usr/local/bin/mattermost + register: have_mattermost + - name: Download mattermost package + ansible.builtin.command: + chdir: /tmp + cmd: wget "{{ mattermost_url }}" -O mattermost.tar.gz + when: not have_mattermost.stat.exists + - name: Unpack mattermost package + ansible.builtin.command: + chdir: /tmp + cmd: tar -xzf mattermost.tar.gz + when: not have_mattermost.stat.exists + - name: Install mattermost package to /opt/mattermost + ansible.builtin.command: + chdir: /tmp + cmd: bash -c "mv mattermost-desktop-* /opt/mattermost-desktop" + become: true + when: not have_mattermost.stat.exists + - name: install mattermost desktop link + ansible.builtin.file: + src: /opt/mattermost-desktop/mattermost-desktop + dest: /usr/local/bin/mattermost-desktop + state: link + become: true + when: not have_mattermost.stat.exists + - name: install mattermost desktop file + ansible.builtin.template: + src: ../templates/mattermost-desktop.desktop.j2 + dest: /home/{{ uid }}/.local/share/applications/mattermost-desktop.desktop + owner: '{{ uid }}' + group: '{{ uid }}' + mode: '0644' + when: not have_mattermost.stat.exists + - name: cleanup + ansible.builtin.command: + cmd: rm /tmp/mattermost.tar.gz + when: not have_mattermost.stat.exists diff --git a/scripts/get_mattermost_url.sh b/scripts/get_mattermost_url.sh new file mode 100755 index 0000000..b415ea8 --- /dev/null +++ b/scripts/get_mattermost_url.sh @@ -0,0 +1,7 @@ +#!/bin/bash +curl -s https://api.github.com/repos/mattermost/desktop/releases/latest \ + | grep "browser_download_url.*tar.gz" \ + | cut -d : -f 2,3 \ + | tr -d \" \ + | tr -d " " \ + | grep x64 diff --git a/templates/mattermost-desktop.desktop.j2 b/templates/mattermost-desktop.desktop.j2 new file mode 100644 index 0000000..ea665f2 --- /dev/null +++ b/templates/mattermost-desktop.desktop.j2 @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=mattermost +StartupWMClass=Mattermost +Comment=Mattermost Desktop +GenericName=Mattermost Client for Linux +Exec=/usr/local/bin/mattermost-desktop -ozone-platform=wayland --enable-features=UseOzonePlatform,WebRTCPipeWireCapturer %U +Icon=/opt/mattermost-desktop/app_icon.png +Type=Application +StartupNotify=true +Categories=GNOME;GTK;Network;InstantMessaging; +MimeType=x-scheme-handler/mattermost;