fixed packages to be more generic

This commit is contained in:
2026-04-18 15:27:33 -06:00
parent 951dfc327f
commit 61c6e800ad
14 changed files with 152 additions and 73 deletions

View File

@@ -1,4 +1,12 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
#
## Variables:
## appimage is top level:
## name: symlink name, command used on CLI to launch
## url: url to download appimage
## filename: filename of appimage
## mode: file mode of the appimage, optional
## checksum: file checksum of appimage if available, optional
--- ---
- name: Install appimages {{ appimage.name }} - name: Install appimages {{ appimage.name }}
become: "{{ install_become }}" become: "{{ install_become }}"
@@ -17,7 +25,7 @@
mode: "{{ appimage.mode | default('0755') }}" mode: "{{ appimage.mode | default('0755') }}"
owner: "{{ appimage.owner | default(ansible_user_id) }}" owner: "{{ appimage.owner | default(ansible_user_id) }}"
group: "{{ appimage.group | default(ansible_user_gid) }}" group: "{{ appimage.group | default(ansible_user_gid) }}"
url: "{{ appimage.url }}" url: "{{ appimage.url }}/{{ appimage.filename }}"
dest: "{{ path_appimage }}/{{ appimage.name }}/{{ appimage.filename }}" dest: "{{ path_appimage }}/{{ appimage.name }}/{{ appimage.filename }}"
checksum: "{{ appimage.checksum | default(omit) }}" checksum: "{{ appimage.checksum | default(omit) }}"
decompress: false decompress: false

View File

@@ -0,0 +1,43 @@
# vim: set filetype=yaml.ansible :
#
## Package: 7zip
## Description: tools to work with 7zip format compression
## Version: system
## Methods: [system]
## Helpers: -
---
- name: Set 7zip default facts # {{{
ansible.builtin.set_fact:
7zip:
methods:
default: [system]
pkgname:
default: [7zip]
- name: Finalise 7zip default facts
ansible.builtin.set_fact:
7zip:
methods: "{{ 7zip.methods[os_family] | default(7zip.methods.default) }}"
pkgname: "{{ 7zip.pkgname[os_family] | default(7zip.pkgname.default) }}"
# }}}
- name: Configure 7zip
when:
- "'7zip' not in __configured"
block:
- name: Set 7zip install method
when:
- 7zip_imethod is undefined
ansible.builtin.set_fact:
7zip_imethod: "{{ imethod if imethod in 7zip.methods else 7zip.methods[0] }}"
- name: Configure 7zip system install
when:
- 7zip_imethod == 'system'
block:
- name: Queue 7zip system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [7zip.pkgname] }}"
7zip_install: "{{ 7zip_imethod }}={{ 7zip.pkgname }}"
- name: Finalise 7zip configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { '7zip': 7zip_install } ) }}"

View File

@@ -38,12 +38,6 @@
url: "{{ air.install_url }}@{{ air.version }}" url: "{{ air.install_url }}@{{ air.version }}"
bin: "{{ path_bin }}/air" bin: "{{ path_bin }}/air"
- name: Clean existing air install
when:
- clean_install
ansible.builtin.set_fact:
pkg_clean: "{{ pkg_clean + air.install_files }}"
- name: Configure pkg dependencies - name: Configure pkg dependencies
loop: "{{ air.pkg_deps }}" loop: "{{ air.pkg_deps }}"
loop_control: loop_control:
@@ -53,9 +47,6 @@
- name: Add air to install list - name: Add air to install list
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_go: "{{ pkg_go + [air_go_pkg] }}" pkg_go: "{{ pkg_go + [air_go_pkg] }}"
- name: Finalise air source install
ansible.builtin.set_fact:
air_install: "{{ air_imethod }}={{ air_go_pkg }}" air_install: "{{ air_imethod }}={{ air_go_pkg }}"
- name: Finalize air configuration - name: Finalize air configuration

View File

@@ -10,16 +10,20 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
ansible_ls: ansible_ls:
methods: methods:
- source default: [system, source]
- system pkgname:
default: ansible-language-server
- name: Finalise ansible_ls default facts
ansible.builtin.set_fact:
ansible_ls:
methods: "{{ ansible_ls.methods[os_family] | default(ansible_ls.methods.default) }}"
pkgname: "{{ ansible_ls.pkgname[os_family] | default(ansible_ls.pkgname.default) }}"
npm_pkg: npm_pkg:
name: '@ansible/ansible-language-server' name: '@ansible/ansible-language-server'
global: true global: true
version: "{{ ansible_ls_version | default('latest') }}" version: "{{ ansible_ls_version | default('latest') }}"
pkg_deps: pkg_deps:
- nodejs - nodejs
pkgname:
Archlinux: ansible-language-server
# }}} # }}}
- name: Configure ansible_ls - name: Configure ansible_ls
when: when:
@@ -37,8 +41,8 @@
block: block:
- name: Queue ansible_ls system install - name: Queue ansible_ls system install
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ansible_ls.pkgname[os_family]] }}" pkg_sys: "{{ pkg_sys + [ansible_ls.pkgname] }}"
ansible_ls_install: "{{ ansible_ls_imethod }}={{ ansible_ls.pkgname[os_family] }}" ansible_ls_install: "{{ ansible_ls_imethod }}={{ ansible_ls.pkgname }}"
- name: Configure ansible_ls source install - name: Configure ansible_ls source install
when: when:

View File

@@ -10,13 +10,20 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
cargo: cargo:
methods: methods:
- system default: [system]
pkgname: pkgname:
RedHat: cargo default: cargo
Debian: cargo
Alpine: cargo
FreeBSD: cargo
Archlinux: rust Archlinux: rust
pkg_deps:
default:
- rust
Archlinux: []
- name: Finalise cargo default facts
ansible.builtin.set_fact:
cargo:
methods: "{{ cargo.methods[os_family] | default(cargo.methods.default) }}"
pkgname: "{{ cargo.pkgname[os_family] | default(cargo.pkgname.default) }}"
pkg_deps: "{{ cargo.pkg_deps[os_family] | default(cargo.pkg_deps.default) }}"
# }}} # }}}
- name: Configure cargo - name: Configure cargo
when: when:
@@ -28,25 +35,25 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
cargo_imethod: "{{ imethod if imethod in cargo.methods else cargo.methods[0] }}" cargo_imethod: "{{ imethod if imethod in cargo.methods else cargo.methods[0] }}"
- name: Add dependencies
when:
- cargo_pkgdeps is defined
loop: "{{ cargo_pkgdeps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml"
- name: Append cargo to install list - name: Append cargo to install list
when: when:
- cargo_imethod == "system" - cargo_imethod == "system"
block: block:
- name: Add dependencies
when:
- cargo.pkg_deps is defined
loop: "{{ cargo.pkg_deps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml"
- name: Queue cargo install - name: Queue cargo install
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [cargo.pkgname[os_family]] }}" pkg_sys: "{{ pkg_sys + [cargo.pkgname] }}"
- name: Finalise cargo system install - name: Finalise cargo system install
ansible.builtin.set_fact: ansible.builtin.set_fact:
cargo_install: "{{ cargo_imethod }}={{ cargo.pkgname[os_family] }}" cargo_install: "{{ cargo_imethod }}={{ cargo.pkgname }}"
- name: Finalize cargo configuration - name: Finalize cargo configuration
ansible.builtin.set_fact: ansible.builtin.set_fact:

View File

@@ -18,7 +18,7 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
choose: choose:
methods: "{{ choose.methods[os_family] | default(choose.methods.default) }}" methods: "{{ choose.methods[os_family] | default(choose.methods.default) }}"
pkgname: "{{ choose.pkgname[os_family] | default(choose.methods.default)}}" pkgname: "{{ choose.pkgname[os_family] | default(choose.pkgname.default)}}"
version: 1.3.7 version: 1.3.7
choose_install: undefined choose_install: undefined
# }}} # }}}

View File

@@ -15,7 +15,7 @@
# }}} # }}}
- name: Configure dockerls - name: Configure dockerls
when: when:
- "'dockerls' not in _configured" - "'dockerls' not in __configured"
block: block:
- name: Set dockerls install method - name: Set dockerls install method
when: when:

View File

@@ -10,8 +10,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
eza: eza:
methods: methods:
- source Archlinux: [system, source]
- system default: [source]
pkgname:
default: eza
- name: Finalise eza default facts
ansible.builtin.set_fact:
eza:
methods: "{{ eza.methods[os_family] | default(eza.methods.default) }}"
pkgname: "{{ eza.pkgname[os_family] | default(eza.pkgname.default) }}"
# }}} # }}}
- name: Configure eza - name: Configure eza
when: when:
@@ -23,6 +30,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
eza_imethod: "{{ imethod if imethod in eza.methods else eza.methods[0] }}" eza_imethod: "{{ imethod if imethod in eza.methods else eza.methods[0] }}"
- name: Configure eza system install
when:
- eza_imethod == 'system'
block:
- name: Queue eza system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [eza.pkgname] }}"
eza_install: "{{ eza_imethod }}={{ eza.pkgname }}"
- name: Configure eza source install - name: Configure eza source install
when: when:
- eza_imethod == "source" - eza_imethod == "source"

View File

@@ -14,7 +14,6 @@
Alpine: [system, source, appimage] Alpine: [system, source, appimage]
default: [source, appimage] default: [source, appimage]
pkgname: pkgname:
Archlinux: ghostty
default: ghostty default: ghostty
build_deps: build_deps:
default: default:
@@ -49,24 +48,19 @@
- name: Finalise ghostty default facts - name: Finalise ghostty default facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
ghostty: ghostty:
version: 1.3.1 version: "{{ ghostty_version | default('1.3.1') }}"
base_url: https://releases.files.ghostty.org base_url: https://releases.files.ghostty.org
methods: "{{ ghostty.methods[os_family] | default(ghostty.methods.default) }}" methods: "{{ ghostty.methods[os_family] | default(ghostty.methods.default) }}"
pkg_deps: [zig] pkg_deps: [zig]
pkgname: "{{ ghostty.pkgname[os_family] | default(ghostty.pkgname.default) }}" pkgname: "{{ ghostty.pkgname[os_family] | default(ghostty.pkgname.default) }}"
build_deps: "{{ ghostty.build_deps[os_family] | default(ghostty.build_deps.default) }}" build_deps: "{{ ghostty.build_deps[os_family] | default(ghostty.build_deps.default) }}"
appimage:
url: https://github.com/pkgforge-dev/ghostty-appimage/releases/download
name: ghostty
# }}} # }}}
- 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 - name: Configure ghostty
when:
- "'ghostty' not in __configured"
block: block:
- name: Set ghostty install method - name: Set ghostty install method
when: when:
@@ -74,6 +68,15 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
ghostty_imethod: "{{ imethod if imethod in ghostty.methods else ghostty.methods[0] }}" ghostty_imethod: "{{ imethod if imethod in ghostty.methods else ghostty.methods[0] }}"
- 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.pkgname] }}"
ghostty_install: "{{ ghostty_imethod }}={{ ghostty.pkgname }}"
- name: Configure ghostty source install - name: Configure ghostty source install
when: when:
- ghostty_imethod == 'source' - ghostty_imethod == 'source'
@@ -103,23 +106,28 @@
build_flags: build_flags:
- "-Doptimize=ReleaseFast" - "-Doptimize=ReleaseFast"
- name: Finalise ghostty source install
ansible.builtin.set_fact:
pkg_zig: "{{ pkg_zig + [ghostty_source_install] }}"
ghostty_install: "{{ ghostty_imethod }}={{ ghostty_source_install }}"
- name: Configure ghostty appimage install - name: Configure ghostty appimage install
when: when:
- ghostty_imethod == 'appimage' - ghostty_imethod == 'appimage'
block: block:
- name: Set ghostty appimage configuration
ansible.builtin.set_fact:
ghostty_appimage_install:
url: "{{ ghostty.appimage.url }}/v{{ ghostty.version }}"
name: "{{ ghostty.appimage.name }}"
filename: "Ghostty-{{ ghostty.version }}-{{ architecture }}.AppImage"
- name: Append ghostty to pkg_appimage - name: Append ghostty to pkg_appimage
when: when:
- ghostty.method == 'appimage' - ghostty.method == 'appimage'
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_appimage: "{{ pkg_appimage + ghostty }}" pkg_appimage: "{{ pkg_appimage + [ghostty_appimage_install] }}"
ghostty_install: "{{ ghostty_imethod }}={{ ghostty_appimage_install }}"
- 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 - name: Finalise ghostty configuration
ansible.builtin.set_fact: ansible.builtin.set_fact:

View File

@@ -36,7 +36,7 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
gopls_go_pkg: gopls_go_pkg:
url: "{{ gopls.install_url }}@{{ gopls.version }}" url: "{{ gopls.install_url }}@{{ gopls.version }}"
bin: "{{ path_bind }}/gopls" bin: "{{ path_bin }}/gopls"
files: "{{ gopls.install_files }}" files: "{{ gopls.install_files }}"
- name: Queue gopls for go_install - name: Queue gopls for go_install

View File

@@ -43,14 +43,14 @@
- name: Finalise neovim default facts - name: Finalise neovim default facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
neovim: neovim:
methods: "{{ neovim.methods[os_family] | neovim.methods.default }}" methods: "{{ neovim.methods[os_family] | default(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: pkg_deps:
- cmake - cmake
version: v0.12.1 version: v0.12.1
pkgname: "{{ neovim.pkgname[os_family] | neovim.pkgname.default }}" pkgname: "{{ neovim.pkgname[os_family] | default(neovim.pkgname.default) }}"
build_files: build_files:
- to: lib64/nvim - to: lib64/nvim
- to: bin/nvim - to: bin/nvim
@@ -61,7 +61,7 @@
build_pkgdeps: build_pkgdeps:
- cmake - cmake
- git - git
build_deps: "{{ neovim.build_deps[os_family] | neovim.build_deps.default }}" build_deps: "{{ neovim.build_deps[os_family] | default(neovim.build_deps.default) }}"
# }}} # }}}
- name: Configure neovim - name: Configure neovim
when: when:

View File

@@ -17,8 +17,8 @@
- name: Finalise stow default facts - name: Finalise stow default facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
stow: stow:
methods: "{{ stow.methods[os_family] | stow.methods.default }}" methods: "{{ stow.methods[os_family] | default(stow.methods.default) }}"
pkgname: "{{ stow.pkgname[os_family] | stow.pkgname.default }}" pkgname: "{{ stow.pkgname[os_family] | default(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
# }}} # }}}
@@ -38,8 +38,8 @@
block: block:
- name: Queue stow for system install - name: Queue stow for system install
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [stow.pkgname[os_family]] }}" pkg_sys: "{{ pkg_sys + [stow.pkgname] }}"
stow_install: "{{ stow_imethod }}={{ stow.pkgname[os_family] }}" stow_install: "{{ stow_imethod }}={{ stow.pkgname }}"
- name: Configure stow source install - name: Configure stow source install
when: when:

View File

@@ -10,12 +10,14 @@
ansible.builtin.set_fact: ansible.builtin.set_fact:
zsh: zsh:
methods: methods:
- system default: [system]
pkgname: pkgname:
RedHat: zsh default: zsh
Debian: zsh - name: Finalise zsh default facts
Alpine: zsh ansible.builtin.set_fact:
Archlinux: zsh zsh:
methods: "{{ zsh.methods[os_family] | default(zsh.methods.default) }}"
pkgname: "{{ zsh.pkgname[os_family] | default(zsh.pkgname.default) }}"
# }}} # }}}
- name: Add zsh - name: Add zsh
when: when:
@@ -33,11 +35,11 @@
block: block:
- name: Queue zsh system install - name: Queue zsh system install
ansible.builtin.set_fact: ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [zsh.pkgname[os_family]] }}" pkg_sys: "{{ pkg_sys + [zsh.pkgname] }}"
- name: Finalise zsh system install - name: Finalise zsh system install
ansible.builtin.set_fact: ansible.builtin.set_fact:
zsh_install: "{{ zsh_imethod }}={{ zsh.pkgname[os_family] }}" zsh_install: "{{ zsh_imethod }}={{ zsh.pkgname }}"
- name: Configure zsh source install - name: Configure zsh source install
when: when: