--- - name: stat symlink stat: path: '{{ansible_env.HOME}}/.local/bin/WebCatalog' register: symlink_file - name: get releases uri: url: https://raw.githubusercontent.com/kbenzie/webcatalog-release-scraper/main/webcatalog-releases.json return_content: true register: releases_raw - set_fact: releases: '{{releases_raw.content | from_json}}' - set_fact: appimage: 'WebCatalog-{{releases[0].version}}.AppImage' - set_fact: filepath: '{{ansible_env.HOME}}/.local/bin/{{appimage}}' iconpath: 'share/icons/hicolor/512x512/apps/webcatalog.png' - set_fact: needs_installed: '{{not symlink_file.stat.exists or symlink_file.stat.lnk_source != filepath}}' - name: download latest version when: needs_installed get_url: url: 'https://cdn-2.webcatalog.io/webcatalog/{{appimage}}' dest: '{{ansible_env.HOME}}/.local/bin/{{appimage}}' mode: '0755' environment: '{{proxy_environment}}' - name: create directories 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/WebCatalog' state: link - name: extract squashfs-root for app icon when: needs_installed command: cmd: '{{ansible_env.HOME}}/.local/bin/WebCatalog --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: webcatalog.desktop.j2 dest: '{{ansible_env.HOME}}/.local/share/applications/webcatalog-webcatalog.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