Files
ansible_role_package/tasks/pkgs/ghostty.yml

127 lines
3.9 KiB
YAML

# vim: set filetype=yaml.ansible :
#
## Package: ghostty
## Description: HW accelerated terminal emulator made with zig
## Version: 1.3.1
## Methods: [system, source, appimage]
## Helpers: [zig, repo, appimage]
---
- name: Set ghostty default facts # {{{
ansible.builtin.set_fact:
ghostty:
methods:
Archlinux: [system, source, appimage]
Alpine: [system, source, appimage]
default: [source, appimage]
pkgname:
Archlinux: ghostty
default: ghostty
build_deps:
default:
- gtk4
- libadwaita
- gtk4-layer-shell
- pkgconf
- gettext
RedHat:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
Debian:
- libgtk-4-dev
- libgtk4-layer-shell-dev
- libadwaita-1-dev
- gettext
- libxml2-utils
Archlinux:
- gtk4
- gtk4-layer-shell
- libadwaita
- gettext
Alpine:
- gtk4.0-dev
- libadwaita-dev
- pkgconf
- ncurses
- gettext
- name: Finalise ghostty default facts
ansible.builtin.set_fact:
ghostty:
version: 1.3.1
base_url: https://releases.files.ghostty.org
methods: "{{ ghostty.methods[os_family] | default(ghostty.methods.default) }}"
pkg_deps: [zig]
pkgname: "{{ ghostty.pkgname[os_family] | default(ghostty.pkgname.default) }}"
build_deps: "{{ ghostty.build_deps[os_family] | default(ghostty.build_deps.default) }}"
# }}}
- name: Set ghostty facts
ansible.builtin.set_fact:
ghostty:
version: "{{ ghostty_version | default(ghostty.version) }}"
methods: "{{ ghostty.methods }}"
source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz"
archive: "ghostty-{{ ghostty.version }}.tar.gz"
pkg_deps: "{{ ghostty.pkg_deps | default(omit) }}"
build_deps: "{{ ghostty.build_deps }}"
- name: Configure ghostty
block:
- name: Set ghostty install method
when:
- ghostty_imethod is undefined
ansible.builtin.set_fact:
ghostty_imethod: "{{ imethod if imethod in ghostty.methods else ghostty.methods[0] }}"
- name: Configure ghostty source install
when:
- ghostty_imethod == 'source'
block:
- name: Add ghostty package dependencies
when:
- ghostty.pkg_deps is defined
- ghostty.pkg_deps|length > 0
loop: "{{ ghostty.pkg_deps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: pkgs/{{ dep }}.yml
- name: Add ghostty system dependencies
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ghostty.build_deps }}"
- name: Configure ghostty zig install
ansible.builtin.set_fact:
ghostty_source_install:
name: ghostty
source_path: "{{ path_archive }}/ghostty/ghostty-{{ ghostty.version }}"
archive:
extract_to: "{{ path_archive }}/ghostty"
name: "{{ ghostty.archive }}"
url: "{{ ghostty.source_url }}"
build_flags:
- "-Doptimize=ReleaseFast"
- name: Configure ghostty appimage install
when:
- ghostty_imethod == 'appimage'
block:
- name: Append ghostty to pkg_appimage
when:
- ghostty.method == 'appimage'
ansible.builtin.set_fact:
pkg_appimage: "{{ pkg_appimage + ghostty }}"
- name: Configure ghostty system install
when:
- ghostty_imethod == 'system'
block:
- name: Queue ghostty to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ghostty.pkg] }}"
- name: Finalise ghostty configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'ghostty': ghostty_install } ) }}"