Older version of kitty have terrible font rendering on Linux, e.g. the one shipped with Ubuntu 22.04, so instead install the latest version from the provided GitHub packages.
108 lines
2.7 KiB
YAML
108 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
|
|
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 .'
|
|
chdir: '{{kitty_package_dir}}'
|