--- - 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}}' 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 symlink file: src: '{{filepath}}' dest: '{{ansible_env.HOME}}/.local/bin/Obsidian' state: link # TODO: icon for desktop file - name: create desktop file template: src: obsidian.desktop.j2 dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop' notify: install desktop menu - name: remove old appimage when: needs_installed and symlink_file.stat.exists file: path: '{{symlink_file.stat.lnk_source}}' state: absent - include_tasks: Unix.yaml