diff --git a/defaults/main.yaml b/defaults/main.yaml index ed97d53..aff56fe 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -1 +1,4 @@ --- +telegram_source: flatpak +telegram_opt_directory: /opt/telegram-desktop +telegram_git_releases_url: https://api.github.com/repos/telegramdesktop/tdesktop/releases/latest diff --git a/tasks/apt.yaml b/tasks/apt.yaml new file mode 100644 index 0000000..46a1c72 --- /dev/null +++ b/tasks/apt.yaml @@ -0,0 +1,6 @@ +--- + +- name: telegram-desktop apt package + apt: + pkg: telegram-desktop + state: "{{ (telegram_source == 'apt') | ternary('latest','absent') }}" diff --git a/tasks/flatpak.yaml b/tasks/flatpak.yaml new file mode 100644 index 0000000..f1c0705 --- /dev/null +++ b/tasks/flatpak.yaml @@ -0,0 +1,13 @@ +--- + +- name: flatpak apt package + apt: + pkg: flatpak + when: telegram_source == 'flatpak' + +- name: telegram-desktop flatpak package + community.general.flatpak: + remote: flathub + name: org.telegram.desktop + state: "{{ (telegram_source == 'flatpak') | ternary('present','absent') }}" + ignore_errors: "{{telegram_source != 'flatpak'}}" diff --git a/tasks/git-setup.yaml b/tasks/git-setup.yaml deleted file mode 100644 index 126310e..0000000 --- a/tasks/git-setup.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- - -- name: installation directory - file: - path: /opt/telegram-desktop - state: directory - -- name: get telegram-desktop releases - uri: - url: https://api.github.com/repos/telegramdesktop/tdesktop/releases/latest - return_content: true - register: _telegram_desktop_releases - -- name: download latest release - get_url: - url: "{{_telegram_desktop_dl_url}}" - dest: /opt/telegram-desktop/{{_telegram_desktop_dl_filename}} - -- name: extract telegram release - unarchive: - src: /opt/telegram-desktop/{{_telegram_desktop_dl_filename}} - remote_src: true - dest: /opt/telegram-desktop - mode: u=rwx,g=rx,o=rx - owner: root - group: root - -- name: link telegram-desktop binary - file: - src: /opt/telegram-desktop/Telegram/Telegram - dest: /usr/local/bin/telegram-desktop - state: link diff --git a/tasks/git.yaml b/tasks/git.yaml new file mode 100644 index 0000000..5b9c9dc --- /dev/null +++ b/tasks/git.yaml @@ -0,0 +1,40 @@ +--- + +- name: installation directory + file: + path: "{{telegram_opt_directory}}" + state: "{{ (telegram_source == 'git') | ternary('directory','absent') }}" + +- when: telegram_source == 'git' + block: + - name: get telegram-desktop releases + uri: + url: "{{telegram_git_releases_url}}" + return_content: true + register: _telegram_desktop_releases + + - name: download latest release + get_url: + url: "{{_telegram_desktop_dl_url}}" + dest: "{{_telegram_desktop_dl_dest}}" + + - name: extract telegram release + unarchive: + src: "{{_telegram_desktop_dl_dest}}" + remote_src: true + dest: "{{telegram_opt_directory}}" + mode: u=rwx,g=rx,o=rx + owner: root + group: root + + - name: link telegram-desktop binary + file: + src: "{{telegram_opt_directory}}/Telegram/Telegram" + dest: /usr/local/bin/telegram-desktop + state: link + +- name: unlink telegram-desktop binary + file: + path: /usr/local/bin/telegram-desktop + state: absent + when: telegram_source != 'git' diff --git a/tasks/main.yaml b/tasks/main.yaml index 180d481..3dd36cb 100644 --- a/tasks/main.yaml +++ b/tasks/main.yaml @@ -1,7 +1,6 @@ --- -- import_tasks: uninstall-git-setup.yaml - -- name: telegram-desktop debian package - apt: - pkg: telegram-desktop +- import_tasks: apt.yaml +- import_tasks: flatpak.yaml +- import_tasks: snap.yaml +- import_tasks: git.yaml diff --git a/tasks/snap.yaml b/tasks/snap.yaml new file mode 100644 index 0000000..b1e10db --- /dev/null +++ b/tasks/snap.yaml @@ -0,0 +1,11 @@ +--- +- name: flatpak apt package + apt: + pkg: snap + when: telegram_source == 'snap' + +- name: telegram-desktop snap package + community.general.snap: + name: telegram-desktop + state: "{{ (telegram_source == 'snap') | ternary('present','absent') }}" + ignore_errors: "{{telegram_source != 'snap'}}" diff --git a/tasks/uninstall-git-setup.yaml b/tasks/uninstall-git-setup.yaml deleted file mode 100644 index def34f7..0000000 --- a/tasks/uninstall-git-setup.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- - -- name: installation directory absent - file: - path: /opt/telegram-desktop - state: absent - -- name: unlink telegram-desktop binary - file: - path: /usr/local/bin/telegram-desktop - state: absent diff --git a/vars/main.yaml b/vars/main.yaml index 3e5cd85..3d67019 100644 --- a/vars/main.yaml +++ b/vars/main.yaml @@ -1,3 +1,4 @@ --- _telegram_desktop_dl_url: "{{ _telegram_desktop_releases.json.assets | json_query(\"[?label=='Linux 64 bit: Binary'].browser_download_url|[0]\") }}" _telegram_desktop_dl_filename: "{{ _telegram_desktop_releases.json.assets | json_query(\"[?label=='Linux 64 bit: Binary'].name|[0]\") }}" +_telegram_desktop_dl_dest: "{{telegram_opt_directory}}/{{_telegram_desktop_dl_filename}}"