75 lines
2.0 KiB
YAML

---
- 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'
- 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