start developing module for go_install

not going to be used for a long time
Making pkg tasks truly single file
This commit is contained in:
Matthew Stobbs
2026-03-03 21:35:46 -07:00
parent 065031b77f
commit 692e9dd99a
28 changed files with 417 additions and 537 deletions

View File

@@ -1,11 +1,17 @@
# vim: set filetype=yaml.ansible :
#
## Helper: pipx.yml
## Description: modular approach to installing pip applications
## Variables:
## name: the name of the pip package to install
---
- name: Install pipx {{ pkg }}
become: "{{ ext_become }}"
- name: Install pipx {{ pkg.name }}
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
environment:
PIPX_HOME: "{{ path.pipx }}"
PIPX_BIN_DIR: "{{ path.bin }}"
PIPX_HOME: "{{ path_pipx }}"
PIPX_BIN_DIR: "{{ path_bin }}"
community.general.pipx:
executable: "{{ pipx_exec }}"
name: "{{ pkg }}"
name: "{{ pkg.name }}"
state: latest

View File

@@ -1,12 +1,24 @@
# vim: set filetype=yaml.ansible :
# Package: air
# Description: application auto reload for go
# Version: latest
# Methods:
# - source (go install)
# Helpers: go_install
#
## Package: air
## Description: application auto reload for go
## Version: latest
## Methods:
## - source (go install)
## Helpers: go_install
---
# {{{ Configure air
- name: Set air default facts # {{{
ansible.builtin.set_fact:
air:
install_methods:
- source
install_files:
- to: bin/air
install_url: github.com/air-verse/air
pkg_deps:
- go
air_version: "{{ air_version | default('latest')}}"
# }}}
- name: Start air configuration
when:
- "'air' not in __configured"
@@ -24,14 +36,9 @@
- name: Set air install package
ansible.builtin.set_fact:
air_go_pkg:
url: "{{ air_install_url }}@{{ air_version }}"
url: "{{ air.install_url }}@{{ air_version }}"
bin: "{{ path_bin }}/air"
# }}}
# {{{ air build and install steps
- name: Append air to pkg_go
when:
- air_install_method == 'source'
block:
- name: Clean existing air install
when:
- clean_install
@@ -47,7 +54,7 @@
- name: Add air to install list
ansible.builtin.set_fact:
pkg_go: "{{ pkg_go + [air_go_pkg] }}"
# }}}
- name: Finalize air configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'air': air_install_method } ) }}"

View File

@@ -1,13 +1,79 @@
# vim: set filetype=yaml.ansible :
# Package: alacritty
# Description: GPU accelerated terminal emulator written in rust
# Version: v0.16.1
# Methods:
# - system
# - source (cargo build)
# Helpers:
# - cargo_build
#
## Package: alacritty
## Description: GPU accelerated terminal emulator written in rust
## Version: v0.16.1
## Methods:
## - system
## - source (cargo build)
## Helpers:
## - cargo_build
---
- name: Set alacritty default facts # {{{
ansible.builtin.set_fact:
alacritty_version: "{{ alacritty_version | default('v0.16.1') }}"
alacritty_build_flags: "{{ alacritty_build_flags | default( ['--release'] ) }}"
alacritty:
install_methods:
- source
- system
git_repo: https://github.com/alacritty/alacritty
install_files:
- from: target/release/alacritty
to: bin/alacritty
mode: '0755'
- from: extra/logo/alacritty-term.svg
to: share/pixmaps/Alacritty.svg
mode: '0644'
- from: extra/linux/Alacritty.desktop
to: share/applications/Alacritty.desktop
mode: '0644'
pkg_deps:
- git
- cargo
- cmake
build_deps:
RedHat:
- fontconfig-devel
- freetype-devel
- g++
- libxcb-devel
- libxkbcommon-devel
- desktop-file-utils
Debian:
- g++
- pkg-config
- libfontconfig1-dev
- libxcb-xfixes0-dev
- libxkbcommon-dev
- python3
- libfreetype6-dev
- desktop-file-utils
Alpine:
- pkgconf
- freetype-dev
- fontconfig-dev
- python3
- libxcb-dev
- g++
- libxkbcommon-dev
- desktop-file-utils
Archlinux:
- freetype2
- fontconfig
- pkg-config
- make
- libxcb
- libxkbcommon
- python
- desktop-file-utils
FreeBSD:
- freetype2
- fontconfig
- pkgconf
- python3
- desktop-file-utils
# }}}
- name: Start alacritty configuration
when:
- "'alacritty' not in __configured"
@@ -25,12 +91,12 @@
- name: Set alacritty build facts
ansible.builtin.set_fact:
alacritty_src_install:
build_deps: "{{ alacritty.build_deps[os_family] }}"
build_flags: "{{ alacritty_cargo_build_flags }}"
source_dir: "{{ alacritty.install_files.source_dir }}"
repo: "{{ alacritty_git_repo }}"
build_flags: "{{ alacritty_build_flags }}"
source_dir: "{{ d_cache.path }}/alacritty"
repo: "{{ alacritty.git_repo }}"
version: "{{ alacritty_version }}"
files: "{{ alacritty.install_files.files }}"
files: "{{ alacritty.install_files }}"
alacritty_build_deps: "{{ alacritty.build_deps[os_family] }}"
- name: Set alacritty install extra build deps
when:
@@ -41,13 +107,13 @@
when:
- ansible_distribution_major_version == 7
ansible.builtin.set_fact:
alacritty_build_deps: "{{ build_deps + ['xcb-util-devel', '@Development Tools'] }}"
alacritty_build_deps: "{{ alacritty_build_deps + ['xcb-util-devel', '@Development Tools'] }}"
- name: Add extra dependencies for EL8
when:
- ansible_distribution_major_version == 8
ansible.builtin.set_fact:
alacritty_build_deps: "{{ build_deps + ['@Development Tools'] }}"
alacritty_build_deps: "{{ alacritty_build_deps + ['@Development Tools'] }}"
- name: Configure pkg dependencies
loop: "{{ alacritty.pkg_deps }}"
@@ -59,14 +125,14 @@
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + alacritty_build_deps }}"
pkg_cargo_build: "{{ pkg_cargo_build + [alacritty_src_install] }}"
# }}}
- name: Configure alacritty system install
when:
- alacritty_install_method == 'system'
block:
- name: Queue alacritty for installation
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [alacritty_pkgname] }}"
pkg_sys: "{{ pkg_sys + [ alacritty.pkgname[os_family] ] }}"
- name: Complete alacritty configuration
ansible.builtin.set_fact:

View File

@@ -1,5 +1,24 @@
# vim: set filetype=yaml.ansible :
#
## Package: ansible
## Description: simple infrastructure as code tool
## Version: latest
## Methods:
## - system
## - source (pipx)
---
- name: Set ansible default facts # {{{
ansible.builtin.set_fact:
ansible:
install_methods:
- system
pkgname:
RedHat: ansible
Debian: ansible
Alpine: ansible
Archlinux: ansible
pip: ansible
# }}}
- name: Configure ansible
when:
- "'ansible' not in __configured"
@@ -8,19 +27,19 @@
when:
- ansible_install_method is undefined
ansible.builtin.set_fact:
ansible_install_method: "{{ install_method if install_method in ansible_install_methods else ansible_install_methods[0] }}"
ansible_install_method: "{{ install_method if install_method in ansible.install_methods else ansible.install_methods[0] }}"
- name: Append ansible to system package manager install list
when:
- ansible_install_method == 'system'
- ansible_install_method == "system"
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ansible_pkgname[ansible_os_family]] }}"
pkg_sys: "{{ pkg_sys + [ ansible_pkgname[os_family] ] }}"
- name: Append ansible to pipx install list
when:
- ansible_install_method == 'source'
ansible.builtin.set_fact:
pkg_pipx: "{{ pkg_pipx + [ansible_pip_pkgname] }}"
pkg_pipx: "{{ pkg_pipx + [ { 'name': ansible_pkgname['pip'] } ] }}"
- name: Complete ansible configuration
ansible.builtin.set_fact:

View File

@@ -1,5 +1,27 @@
# vim: set filetype=yaml.ansible :
#
## Package: ansible_lint
## Description: Linter for ansible yaml
## Version: latest
## Methods:
## - source (pipx)
## Helpers: pipx
---
- name: Set ansible_lint default facts # {{{
ansible.builtin.set_fact:
ansible_lint_version: "{{ ansible_lint_version | default('latest') }}"
ansible_lint:
install_methods:
- source
- system
pkgname:
RedHat: ansible-lint
Debian: ansible-lint
Archlinux: ansible-lint
Alpine: ansible-lint
FreeBSD: py311-ansible-lint
pip: ansible_lint
# }}}
- name: Configure ansible_lint
when:
- "'ansible_lint' not in __configured"
@@ -10,17 +32,13 @@
ansible.builtin.set_fact:
ansible_lint_install_method: "{{ install_method if install_method in ansible_lint_install_methods else ansible_lint_methods[0] }}"
- name: Set pipx pkgnname
- name: Configure pipx source install
when:
- ansible_lint_install_method == 'source'
ansible.builtin.set_fact:
ansible_lint_pkgname: "{{ ansible_lint_pkgname['pipx'] }}{{ '==' ~ ansible_lint_version if ansible_lint_version != 'latest' }}"
- name: Add ansible_lint to pipx install list
when:
- ansible_lint_install_method == 'source'
ansible.builtin.set_fact:
pkg_pipx: "{{ pkg_pipx + [ansible_lint_pkgname] }}"
- ansible_lint_install_method == "source"
block:
- name: Add ansible_lint to pipx install list
ansible.builtin.set_fact:
pkg_pipx: "{{ pkg_pipx + [ansible_lint.pkgname['pip']] }}"
- name: Append ansible-lint to system install list
when:

View File

@@ -1,5 +1,26 @@
# vim: set filetype=yaml.ansible :
#
## Package: ansible_ls
## Description: language server for ansible yaml
## Version: latest
## Methods:
## - source (npm)
## - system
## Helpers: npm
---
- name: Set ansible_ls default facts # {{{
ansible.builtin.set_fact:
ansible_ls:
install_methods:
- source
- system
npm_pkg:
name: '@ansible/ansible-language-server'
global: true
version: latest
pkg_deps:
- nodejs
# }}}
- name: Configure ansible_ls
when:
- "'ansible_ls' not in __configured"
@@ -15,14 +36,21 @@
- ansible_ls_install_method == 'source'
block:
- name: Load required installation dependencies
loop: "{{ ansible_ls_pkg_deps }}"
loop: "{{ ansible_ls.pkg_deps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml"
- name: Set ansible_ls npm_pkg config
ansible.builtin.set_fact:
ansible_ls_npm_pkg:
name: "{{ ansible_ls.npm_pkg.name }}"
global: "{{ ansible_ls.npm_pkg.global }}"
version: "{{ ansible_ls_version | default(ansible_ls.npm_pkg.version) }}"
- name: Append ansible ls to pkg_npm
ansible.builtin.set_fact:
pkg_npm: "{{ pkg_npm + [ansible_ls.npm_pkg] }}"
pkg_npm: "{{ pkg_npm + [ansible_ls_npm_pkg] }}"
- name: Set ansible_ls_configured
ansible.builtin.set_fact:

View File

@@ -1,6 +1,23 @@
# vim: set filetype=yaml.ansible :
#
## Package: bashls
## Description: language server for bash (sh compatible)
## Version: latest
## Methods:
## - source (npm)
## Helpers: npm
---
- name: Add bashls
- name: Set bashls default facts # {{{
ansible.builtin.set_fact:
bashls:
install_methods:
- source
npm_pkg:
name: bash-language-server
global: true
version: latest
# }}}
- name: Configure bashls
when:
- "'bashls' not in __configured"
block:
@@ -14,9 +31,16 @@
when:
- bashls_install_method == 'source'
block:
- name: Set bashls npm_pkg config
ansible.builtin.set_fact:
bashls_npm_pkg:
name: "{{ bashls.npm_pkg.name }}"
global: "{{ bashls.npm_pkg.global }}"
version: "{{ bashls_version | default(bashls.npm_pkg.version) }}"
- name: Append bashls to pkg_npm
ansible.builtin.set_fact:
pkg_npm: "{{ pkg_npm + [bashls.npm_pkg] }}"
pkg_npm: "{{ pkg_npm + [bashls_npm_pkg] }}"
- name: Set bashls_configured
ansible.builtin.set_fact:

View File

@@ -1,5 +1,43 @@
# vim: set filetype=yaml.ansible :
#
## Package: bat
## Description: cat replacement with style
## Version: latest
## Methods:
## - system
---
- name: Append bat to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ['bat'] }}"
- name: Start bat configuration
when:
- "'bat' not in __configured"
block:
- name: Set bat install method
when:
- bat_install_method is undefined
ansible.builtin.set_fact:
bat_install_method: "{{ install_method if install_method in bat.install_methods else bat.install_methods[0] }}"
- name: Configure bat source install
when:
- bat_install_method == "source"
block:
- name: Set bat cargo configuration
ansible.builtin.set_fact:
bat_cargo_install:
name: bat
locked: true
- name: Queue bat for cargo install
ansible.builtin.set_fact:
pkg_carg: "{{ pkg_cargo + [bat_cargo_install] }}"
- name: Configure bat system install
when:
- bat_install_method == "system"
block:
- name: Append bat to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ bat.pkgname[os_family] ] }}"
- name: Finalize bat configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'bat': bat_install_method } ) }}"

View File

@@ -1,31 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Add bitwarden
when:
- bitwarden_configured is undefined
block:
- name: Load bitwarden config
ansible.builtin.include_tasks:
file: config/bitwarden.yml
- name: Append bitwarden to pkg_flatpak
when:
- bitwarden.method == 'flatpak'
ansible.builtin.set_fact:
pkg_flatpak: "{{ pkg_flatpak + [bitwarden.pkg] }}"
- name: Append bitwarden to pkg_appimage
when:
- bitwarden.method == 'appimage'
ansible.builtin.set_fact:
pkg_appimage: "{{ pkg_appimage + [bitwarden.pkg] }}"
- name: Append bitwarden to pkg_cask
when:
- bitwarden.method == 'cask'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + [bitwarden.pkg] }}"
- name: Set bitwarden_configured
ansible.builtin.set_fact:
bitwarden_configured: true

View File

@@ -1,9 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Load cockpit configuration
ansible.builtin.include_tasks:
file: config/cockpit.yml
- name: Append cockpit to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + cockpit.pkgs }}"

View File

@@ -1,23 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Load firefox config
ansible.builtin.include_tasks:
file: config/firefox.yml
- name: Append firefox to pkg_sys
when:
- firefox.method == 'sys'
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ['firefox'] }}"
- name: Install firefox as flatpak
when:
- firefox.method == 'flatpak'
ansible.builtin.set_fact:
pkg_flatpak: "{{ pkg_sys + ['org.mozilla.firefox'] }}"
- name: Append firefox to pkg_cask
when:
- ansible_system == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['firefox'] }}"

View File

@@ -1,7 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Add goroot to /etc/profile.d
when:
- ansible_os_family == 'RedHat'
ansible.builtin.set_fact:
pkg_src: "{{ pkg_src + ['go_profile_path'] }}"

View File

@@ -1,21 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Add godot
when:
- godot_configured is undefined
block:
- name: Append godot to pkg_flatpak
when:
- ansible_system == 'Linux'
ansible.builtin.set_fact:
pkg_flatpak: "{{ pkg_flatpak + ['org.godotengine.Godot'] }}"
- name: Append godot to pkg_cask
when:
- ansible_system == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['godot'] }}"
- name: Set godot_configured
ansible.builtin.set_fact:
godot_configured: true

View File

@@ -1,23 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Load libreoffice config
ansible.builtin.include_tasks:
file: config/libreoffice.yml
- name: Append libreoffice to pkg_flatpak
when:
- libreoffice.method == 'flatpak'
ansible.builtin.set_fact:
pkg_flatpak: "{{ pkg_flatpak + [libreoffice.flatpak] }}"
- name: Append libreoffice to pkg_sys
when:
- libreoffice.method == 'sys'
ansible.builtin.set_fact:
sys_pkg: "{{ sys_pkg + libreoffice.pkgs }}"
- name: Append libreoffice to caskpkgs
when:
- libreoffice.method == 'cask'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + libreoffice.pkgs }}"

View File

@@ -1,29 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Add neovide
block:
- name: Load neovide config
ansible.builtin.include_tasks:
file: config/neovide.yml
- name: Linux based neovide install
when:
- ansible_system == 'Linux'
block:
- name: Append neovide build_deps to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + neovide.build_deps }}"
- name: Append neovide to pkg_cargo
ansible.builtin.set_fact:
pkg_cargo: "{{ pkg_cargo + [neovide] }}"
- name: Append neovide to pkg_cask
when:
- ansible_system == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['neovide'] }}"
- name: Set neovide_configured
ansible.builtin.set_fact:
neovide_configured: true

View File

@@ -1,31 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Add nextcloud_client
block:
- name: Load nextcloud-client config
ansible.builtin.include_tasks:
file: config/nextcloud.yml
- name: Append nextcloud-client to pkg_Flatpak
when:
- ansible_system == 'Linux'
- nextcloud.method == 'flatpak'
ansible.builtin.set_fact:
pkg_flatpak: "{{ pkg_flatpak + [nextcloud] }}"
- name: Append nextcloud-client to pkg_sys
when:
- ansible_system == 'Linux'
- nextcloud.method == 'sys'
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ['nextcloud'] }}"
- name: Append nextcloud-client to pkg_cask
when:
- ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['nextcloud'] }}"
- name: Set nextcloud_client_configured
ansible.builtin.set_fact:
nextcloud_client_configured: true

View File

@@ -1,5 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Append targetcli to pkg_sys
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + targetcli.pkgs }}"

View File

@@ -1,17 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- name: Append thunderbird to pkg_sys
when:
- ansible_system == 'Linux'
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ['thunderbird'] }}"
- name: Append thunderbird to pkg_cask
when:
- ansible_system == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['thunderbird'] }}"
- name: Set thunderbird_configured
ansible.builtin.set_fact:
thunderbird_configured: true