add archlinux installation methods

This commit is contained in:
2026-04-18 12:31:07 -06:00
parent cf20e639f0
commit f94a9cb8e5
13 changed files with 140 additions and 107 deletions

View File

@@ -10,7 +10,12 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
choose: choose:
methods: methods:
- source Archlinux: [system, source]
default: [source]
- name: Finalise choose default facts
ansible.builtin.set_fact:
choose:
methods: "{{ choose.methods[os_family] | default(choose.methods.defualt) }}"
version: 1.3.7 version: 1.3.7
# }}} # }}}
- name: Configure choose - name: Configure choose

View File

@@ -16,6 +16,7 @@
Debian: clang-12 Debian: clang-12
Darwin: llvm Darwin: llvm
Alpine: clang19 Alpine: clang19
Archlinux: clang
# }}} # }}}
- name: Configure clangd - name: Configure clangd
when: when:

View File

@@ -17,6 +17,7 @@
Alpine: direnv Alpine: direnv
Debian: direnv Debian: direnv
Darwin: direnv Darwin: direnv
Archlinux: direnv
install_url: github.com/direnv/direnv install_url: github.com/direnv/direnv
pkg_deps: pkg_deps:
- go - go

View File

@@ -17,6 +17,7 @@
Darwin: fd Darwin: fd
Alpine: fd Alpine: fd
FreeBSD: fd-find FreeBSD: fd-find
Archlinux: fd
# }}} # }}}
- name: Configure fd - name: Configure fd
when: when:

View File

@@ -9,93 +9,62 @@
- name: Set ghostty default facts # {{{ - name: Set ghostty default facts # {{{
ansible.builtin.set_fact: ansible.builtin.set_fact:
ghostty: ghostty:
version: 1.3.1
base_url: https://releases.files.ghostty.org
# install methods per distribution
default:
methods: methods:
- source Archlinux: [system, source, appimage]
pkg_deps: &pkgdeps Alpine: [system, source, appimage]
- zig default: [source, appimage]
pkgname:
Archlinux: ghostty
default: ghostty
build_deps: build_deps:
default:
- gtk4 - gtk4
- libadwaita - libadwaita
- gtk4-layer-shell - gtk4-layer-shell
- pkgconf - pkgconf
- gettext - gettext
Redhat: &redhat RedHat:
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4-devel - gtk4-devel
- gtk4-layer-shell-devel - gtk4-layer-shell-devel
- libadwaita-devel - libadwaita-devel
- gettext - gettext
AlmaLinux: *redhat Debian:
CentOS: *redhat
Rocky: *redhat
Debian: &debian
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- libgtk-4-dev - libgtk-4-dev
- libgtk4-layer-shell-dev - libgtk4-layer-shell-dev
- libadwaita-1-dev - libadwaita-1-dev
- gettext - gettext
- libxml2-utils - libxml2-utils
Ubuntu: *debian Archlinux:
Raspbian: *debian
Linux Mint: *debian
Archlinux: &arch
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4 - gtk4
- gtk4-layer-shell - gtk4-layer-shell
- libadwaita - libadwaita
- gettext - gettext
pkgname: ghostty
Majaro: *arch
Fedora:
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
Alpine: Alpine:
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4.0-dev - gtk4.0-dev
- libadwaita-dev - libadwaita-dev
- pkgconf - pkgconf
- ncurses - ncurses
- gettext - gettext
pkgname: ghostty
- 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 - name: Set ghostty facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
ghostty: ghostty:
version: "{{ ghostty_version | default(ghostty.version) }}" version: "{{ ghostty_version | default(ghostty.version) }}"
methods: "{{ ghostty[distribution].methods | default(_methods['default']) }}" methods: "{{ ghostty.methods }}"
source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz" source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz"
archive: "ghostty-{{ ghostty.version }}.tar.gz" archive: "ghostty-{{ ghostty.version }}.tar.gz"
pkg_deps: "{{ ghostty[distribution].pkg_deps | default(omit) }}" pkg_deps: "{{ ghostty.pkg_deps | default(omit) }}"
build_deps: "{{ ghostty[distribution].build_deps | default(ghostty.default.build_deps) }}" build_deps: "{{ ghostty.build_deps }}"
- name: Configure ghostty - name: Configure ghostty
block: block:

View File

@@ -14,6 +14,7 @@
RedHat: go RedHat: go
Debian: go Debian: go
Darwin: go Darwin: go
Archlinux: go
FreeBSD: FreeBSD:
default: go default: go
1.26: go126 1.26: go126

View File

@@ -9,6 +9,16 @@
- name: Set lazygit default facts # {{{ - name: Set lazygit default facts # {{{
ansible.builtin.set_fact: ansible.builtin.set_fact:
lazygit: lazygit:
methods:
Archlinux: [system, source]
default: [source]
pkgname:
default: lazygit
- name: Finalise lazygit default facts
ansible.builtin.set_fact:
lazygit:
methods: "{{ lazygit.methods[os_family] | default(lazygit.methods.default) }}"
pkgname: "{{ lazygit.pkgname[os_family] | default(lazygit.pkgname.default) }}"
url: github.com/jesseduffield/lazygit url: github.com/jesseduffield/lazygit
version: "{{ lazygit_version | default('latest') }}" version: "{{ lazygit_version | default('latest') }}"
pkg_deps: pkg_deps:
@@ -22,6 +32,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
lazygit_imethod: "{{ imethod if imethod in lazygit.methods else lazygit.methods[0] }}" lazygit_imethod: "{{ imethod if imethod in lazygit.methods else lazygit.methods[0] }}"
- name: Configure lazygit system install
when:
- lazygit_imethod == 'system'
block:
- name: Queue lazygit system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [lazygit.pkgname] }}"
lazygit_install: "{{ lazygit_imethod }}={{ lazygit.pkgname }}"
- name: Configure lazygit source install - name: Configure lazygit source install
when: when:
- lazygit_imethod == 'source' - lazygit_imethod == 'source'

View File

@@ -10,19 +10,47 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
neovim: neovim:
methods: methods:
- source default: [system, source, appimage, archive]
- system pkgname:
- appimage default: neovim
- archive build_deps:
Archlinux:
- base-devel
- ninja
- curl
RedHat:
- curl
- gcc
- gettext
- glibc-gconv-extra
- make
- ninja-build
Debian:
- build-essential
- curl
- gettext
- ninja-build
Darwin:
- curl
- gettext
- ninja
Alpine:
- build-base
- coreutils
- curl
- gettext-dev
- name: Finalise neovim default facts
ansible.builtin.set_fact:
neovim:
methods: "{{ neovim.methods[os_family] | neovim.methods.default }}"
git_repo: https://github.com/neovim/neovim git_repo: https://github.com/neovim/neovim
appimage: appimage:
base_url: https://github.com/neovim/neovim/releases/download base_url: https://github.com/neovim/neovim/releases/download
pkg_deps:
- cmake
version: v0.12.1 version: v0.12.1
pkgname: pkgname: "{{ neovim.pkgname[os_family] | neovim.pkgname.default }}"
RedHat: neovim
Debian: neovim
Darwin: neovim
FreeBSD: neovim
build_files: build_files:
- to: lib64/nvim - to: lib64/nvim
- to: bin/nvim - to: bin/nvim
@@ -33,32 +61,7 @@
build_pkgdeps: build_pkgdeps:
- cmake - cmake
- git - git
build_deps: build_deps: "{{ neovim.build_deps[os_family] | neovim.build_deps.default }}"
RedHat:
- cmake
- curl
- gcc
- gettext
- glibc-gconv-extra
- make
- ninja-build
Debian:
- build-essential
- cmake
- curl
- gettext
- ninja-build
Darwin:
- cmake
- curl
- gettext
- ninja
Alpine:
- build-base
- cmake
- coreutils
- curl
- gettext-dev
# }}} # }}}
- name: Configure neovim - name: Configure neovim
when: when:

View File

@@ -6,17 +6,21 @@
## Methods: system ## Methods: system
## Helpers: - ## Helpers: -
--- ---
- name: Set nodejs default facts - name: Set nodejs default facts # {{{
ansible.builtin.set_fact: ansible.builtin.set_fact:
nodejs: nodejs:
methods: methods:
- system - system
pkgname: pkgname:
Archlinux:
- nodejs
- npm
RedHat: RedHat:
- nodejs - nodejs
FreeBSD: FreeBSD:
- node - node
- npm - npm
# }}}
- name: Configure nodejs - name: Configure nodejs
when: when:
- "'nodejs' not in __configured" - "'nodejs' not in __configured"

View File

@@ -14,6 +14,7 @@
pkgname: pkgname:
RedHat: ripgrep RedHat: ripgrep
Debian: ripgrep Debian: ripgrep
Archlinux: ripgrep
# }}} # }}}
- name: Configure ripgrep - name: Configure ripgrep
when: when:

View File

@@ -10,11 +10,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
stow: stow:
methods: methods:
- system Archlinux: [system, source]
- source default: [source]
pkgname: pkgname:
RedHat: stow default: stow
Archlinux: stow - name: Finalise stow default facts
ansible.builtin.set_fact:
stow:
methods: "{{ stow.methods[os_family] | stow.methods.default }}"
pkgname: "{{ stow.pkgname[os_family] | stow.pkgname.default }}"
baseurl: https://ftp.gnu.org/gnu/stow baseurl: https://ftp.gnu.org/gnu/stow
version: 2.4.1 version: 2.4.1
# }}} # }}}

View File

@@ -6,11 +6,16 @@
## Methods: [source] ## Methods: [source]
## Helpers: [cargo_build] ## Helpers: [cargo_build]
--- ---
- name: Configure yazi installation # {{{ - name: Set yazi default facts # {{{
ansible.builtin.set_fact: ansible.builtin.set_fact:
yazi: yazi:
methods: methods:
- source default: [source]
Archlinux: [system, source]
- name: Finalise yazi default facts
ansible.builtin.set_fact:
yazi:
methods: "{{ yazi.methods[os_family] | default(yazi.methods.default) }}"
version: 26.1.22 version: 26.1.22
git: git:
repo: https://github.com/sxyazi/yazi.git repo: https://github.com/sxyazi/yazi.git
@@ -53,6 +58,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
yazi_imethod: "{{ imethod if imethod in yazi.methods else yazi.methods[0] }}" yazi_imethod: "{{ imethod if imethod in yazi.methods else yazi.methods[0] }}"
- name: Configure yazi system install
when:
- yazi_imethod == 'system'
block:
- name: Queue yazi system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [yazi.pkgname] }}"
yazi_install: "{{ yazi_imethod }}={{ yazi.pkgname }}"
- name: Configure yazi source install - name: Configure yazi source install
when: when:
- yazi_imethod == 'source' - yazi_imethod == 'source'

View File

@@ -8,9 +8,18 @@
--- ---
- name: Set zig default facts - name: Set zig default facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
zig:
methods: methods:
- archive default: [archive]
- system Archlinux: [system, archive]
pkgname:
default: zig
- name: Finalise zig default facts
ansible.builtin.set_fact:
zig:
methods: "{{ zig.methods[os_family] | default(zig.methods.default) }}"
pkgname: "{{ zig.pkgname[os_family] | default(zig.pkgname.default) }}"
version: "{{ zig_version | default('0.15.2') }}" version: "{{ zig_version | default('0.15.2') }}"
archive: archive:
url: https://ziglang.org/download url: https://ziglang.org/download
@@ -29,7 +38,8 @@
when: when:
- zig_imethod == 'system' - zig_imethod == 'system'
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [zig.pkgname[os_family]] }}" pkg_sys: "{{ pkg_sys + [zig.pkgname] }}"
zig_install: "{{ zig_imethod }}={{ zig.pkgname }}"
- name: Configure zig archive install - name: Configure zig archive install
when: when: