diff --git a/roles/obsidian/tasks/Linux.yaml b/roles/obsidian/tasks/Linux.yaml index 9c07c25..027dc6b 100644 --- a/roles/obsidian/tasks/Linux.yaml +++ b/roles/obsidian/tasks/Linux.yaml @@ -1,75 +1,30 @@ --- # TODO: Prefer Flatpak over AppImage if available +- name: install flatpak package + flatpak: + name: md.obsidian.Obsidian - name: stat symlink stat: path: '{{ansible_env.HOME}}/.local/bin/Obsidian' register: symlink_file - -- name: get latest release - uri: - url: https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest - register: latest - - set_fact: - appimage: 'Obsidian-{{latest.json.name}}.AppImage' -- set_fact: - filepath: '{{ansible_env.HOME}}/.local/bin/{{appimage}}' iconpath: 'share/icons/hicolor/512x512/apps/obsidian.png' - asset_query: '[?contains(name, `{{appimage}}`)] | [0]' -- set_fact: - needs_installed: - '{{not symlink_file.stat.exists or symlink_file.stat.lnk_source != filepath}}' - asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}' - -- name: download latest version - get_url: - url: '{{asset.browser_download_url}}' - dest: '{{filepath}}' - mode: '0755' - -- name: create directories +- name: remove appimage icon file file: - path: '{{item}}' - state: directory - with_items: - - '{{ansible_env.HOME}}/.local/bin' - - '{{ansible_env.HOME}}/.local/share/icons/hicolor/512x512/apps' - -- name: create symlink - file: - src: '{{filepath}}' - dest: '{{ansible_env.HOME}}/.local/bin/Obsidian' - state: link - -- name: extract squashfs-root for app icon - when: needs_installed - command: - cmd: '{{ansible_env.HOME}}/.local/bin/Obsidian --appimage-extract' - chdir: '/tmp' - -- name: copy icon file - when: needs_installed - copy: - src: '/tmp/squashfs-root/usr/{{iconpath}}' dest: '{{ansible_env.HOME}}/.local/{{iconpath}}' - -- name: remove squashfs-root directory - when: needs_installed - file: - path: '/tmp/squashfs-root' state: absent - -- name: create desktop file - template: - src: obsidian.desktop.j2 +- name: remove appimage desktop file + file: dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop' - notify: install desktop menu - + state: absent - name: remove old appimage - when: needs_installed and symlink_file.stat.exists file: path: '{{symlink_file.stat.lnk_source}}' state: absent +- name: remove appimage symlink + file: + path: '{{ansible_env.HOME}}/.local/bin/Obsidian' + state: absent - include_tasks: Unix.yaml