109 lines
2.7 KiB
YAML
109 lines
2.7 KiB
YAML
---
|
|
- name: remove apt package
|
|
become: true
|
|
apt:
|
|
name: kitty
|
|
state: absent
|
|
|
|
- name: get latest version
|
|
uri:
|
|
url: https://api.github.com/repos/kovidgoyal/kitty/releases/latest
|
|
headers: '{{github_auth_headers}}'
|
|
register: latest
|
|
|
|
- set_fact:
|
|
kitty_latest_version: '{{latest.json.tag_name[1:]}}'
|
|
kitty_exe: /usr/local/bin/kitty
|
|
kitty_package_dir: /usr/local/stow/kitty
|
|
|
|
- name: check if already installed
|
|
stat:
|
|
path: '{{kitty_exe}}'
|
|
register: kitty
|
|
|
|
- name: get installed version
|
|
when: kitty.stat.exists
|
|
command: '{{kitty_exe}} --version'
|
|
register: kitty_version
|
|
changed_when: false
|
|
|
|
- when: kitty.stat.exists
|
|
set_fact:
|
|
kitty_install_version:
|
|
'{{kitty_version.stdout | regex_replace("^.*(\d+\.\d+\.\d+).*$", "\1")}}'
|
|
|
|
- set_fact:
|
|
kitty_asset_query: >
|
|
[? contains(name,
|
|
`kitty-{{kitty_latest_version}}-{{ansible_architecture}}.txz`)] | [0]
|
|
|
|
- set_fact:
|
|
kitty_install_required: >
|
|
{{ kitty_install_version is not defined or
|
|
kitty_latest_version != kitty_install_version }}
|
|
kitty_asset: "{{ latest.json.assets | json_query(kitty_asset_query) }}"
|
|
|
|
- name: uninstall package
|
|
when: kitty_install_required and kitty.stat.exists
|
|
become: true
|
|
command:
|
|
cmd: 'stow --delete --target /usr/local .'
|
|
chdir: '{{kitty_package_dir}}'
|
|
|
|
- name: remove outdated package
|
|
when: kitty_install_required and kitty.stat.exists
|
|
become: true
|
|
file:
|
|
state: absent
|
|
path: '{{kitty_package_dir}}'
|
|
|
|
- set_fact:
|
|
kitty_package_archive: '{{kitty_package_dir}}/{{kitty_asset.name}}'
|
|
|
|
- name: create package directory
|
|
become: true
|
|
file:
|
|
state: directory
|
|
path: '{{kitty_package_dir}}'
|
|
|
|
- name: download package
|
|
when: kitty_install_required
|
|
become: true
|
|
get_url:
|
|
url: '{{kitty_asset.browser_download_url}}'
|
|
dest: '{{kitty_package_archive}}'
|
|
environment: '{{proxy_environment}}'
|
|
|
|
- name: decompress package
|
|
when: kitty_install_required
|
|
become: true
|
|
unarchive:
|
|
src: '{{kitty_package_archive}}'
|
|
dest: '{{kitty_package_dir}}'
|
|
owner: root
|
|
group: staff
|
|
|
|
- name: remove package archive
|
|
when: kitty_install_required
|
|
become: true
|
|
file:
|
|
state: absent
|
|
path: '{{kitty_package_archive}}'
|
|
|
|
# FIXME: This is bound to break something somewhere but on Ubuntu 22.04 this
|
|
# file breaks a bunch of other stuff when the kitty package in installed in
|
|
# /usr/local with stow so we delete it before stowing.
|
|
- name: remove conflicting library
|
|
when: kitty_install_required
|
|
become: true
|
|
file:
|
|
state: absent
|
|
path: '{{kitty_package_dir}}/lib/libglib-2.0.so.0'
|
|
|
|
- name: install package
|
|
when: kitty_install_required
|
|
become: true
|
|
command:
|
|
cmd: "stow --no-folding --target /usr/local --ignore='lib/.*$' ."
|
|
chdir: '{{kitty_package_dir}}'
|