76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			76 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'
 | 
						|
  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
 |