19 Commits

Author SHA1 Message Date
Matthew Stobbs
d1abc65872 fix pipx 2026-04-21 18:51:49 -06:00
Matthew Stobbs
076a6066f5 update pipx to new style with 'default' 2026-04-21 18:50:56 -06:00
1b7bc08895 add btrfs-progs 2026-04-18 19:06:37 -06:00
01239701f9 add restic
- fix packages that were broken
- change the way configuration is done
  - define default facts for packages with os_family level vars
  - refine the default facts into an os_family specfic config
2026-04-18 18:44:18 -06:00
61c6e800ad fixed packages to be more generic 2026-04-18 15:27:33 -06:00
951dfc327f fix choose 2026-04-18 14:20:03 -06:00
c9e8ebf9cf fix choose 2026-04-18 14:16:01 -06:00
701066abff fix bashls 2026-04-18 12:51:09 -06:00
471a7101f7 fix bashls 2026-04-18 12:50:17 -06:00
5782d64f46 fix ansible_lint 2026-04-18 12:46:26 -06:00
81e516221b fix ansible_lint 2026-04-18 12:43:37 -06:00
f94a9cb8e5 add archlinux installation methods 2026-04-18 12:31:07 -06:00
cf20e639f0 updating packages to add Archlinux specific 2026-04-18 11:44:37 -06:00
bc7364185b add archive to make helper
- helper 'make' will check for repo to use git, and extract_to to use
archive
- configure target is changed to run the ./configure script
2026-04-18 11:16:02 -06:00
Matthew Stobbs
2c008ecdda stubbing multiple packages to add 2026-04-14 01:21:53 -06:00
Matthew Stobbs
25fb4a6f6d update readme to match packages 2026-04-14 00:40:06 -06:00
Matthew Stobbs
9fc6956947 fix neovim version string 2026-04-14 00:31:05 -06:00
Matthew Stobbs
1eae6eb0db fixed remaining issues
added pipx and ripgrep back. not sure where they went in the first place
2026-04-13 15:19:33 -06:00
Matthew Stobbs
8dc427f027 Squash merge move_to_single_file_pkgs into main 2026-04-13 14:50:45 -06:00
88 changed files with 627 additions and 296 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.galaxy_install_info
.lock
.ansible/.lock

View File

@@ -42,129 +42,49 @@ To install any of the available packages, they must be part of a list called
- ansible-lint: linting for yaml.ansible files _default method_ **pipx**
- ansible: configuration management _default method_ **system**
- ansible_ls: ansible language-server
- aquamarine: graphics library for hyrpland _default method_ **source**
- bashls: bash language server
- bat: bat, an ehanced replacement for cat
- bitwarden: password mananger
- blender: 3d modeling, video editing tools
- broot: a file browser/manager for the cli
- btop: advanced top replacement
- buf: protocol buffer tooling in go
- bufls: protocol buffer language server
- carapace: universal command completion engine
- cbfmt: tool to format codeblocks inside structured documents
- cheat: cli cheatsheet creator and viewer
- checkmake: a linter and analyzer for makefiles
- choose: an alternative to cut written in rust
- clangd: the LLVM based C/C++ compiler, langauge server and linter
- cmake: build system for C/C++ projects
- cmakelang: cmake linter and formatter
- cockpit: webui to managed linux systems
- commitlint-cli: linting for git commit messages
- commitlint-config-conventional: config for commitlint-cli
- consul: service discovery by hashicorp
- cssls: css language server
- curlie: enhanced version of curl
- dbeaver: database manager gui
- direnv: load .env files in the cli
- dockerls: dockerfile lanaguage server
- dotenv-linter: linter for .env files
- duf: a good looking replacement for df
- dust: a better looking version of du
- editorconfig: common editor configuration system
- eslint: ECMA Script linting
- eza: a modern ls replacement
- fd: a modern replacement for find
- firefox: a modern OSS web browser
- firewalld: modern zone based firewall
- flatpak: universal linux package management system
- fzf: fuzzy find from a list given over stdin
- ghostty: a modern advanced terminal emulator
- git: project versioning system _default method_ **system**
- glow: cli markdown parser and viewer
- gitea-server: git hosting with a cup of tea
- go: the go programming language _default method_ **archive**
- godot: the best OSS game making studio/engine
- gopls: the go language server
- gping: graphical pinging on the cli
- greetd: a simple system greeter
- heroic: heroic games launcher
- htmlls: html language server
- htmx-lsp: htmx language server
- httpie: a graphical REST client
- hugo: static html site generator
- hyperfine: a cli benchmarking tool
- hyprcursor: a hyprland support library
- hyprgraphics: a hyrpland graphics library
- hypridle: hyprland system idle monitor
- hyprland: a pretty tiling window manager
- hyprland_protocols: a hyprland wayland protocol library
- hyprland_qt_support: hyprland qt libraries
- hyprland_qtutils: hyrpland tools in qt
- hyprlang: hyprland configuration language
- hyprlock: hyprland screen locker
- hyprpaper: hyprland wallpaper manager
- hyprpicker: hyprland colour picker
- hyprpolkitagent: hyprland policy kit agent
- hyprutils: hyprland utilities library
- hyprwayland_scanner: hyprland wayland library scanner
- intelephense: php language server, linter and formatter
- jinja-lsp: the jinja language server
- jq: json cli parser
- jsonls: json language server
- kitty: high perfomance terminal emulator
- lazygit: git made easy
- libreoffice: the free office suite
- luals: lua language server
- markdownlint-cli: markdown linter
- mcfly: cli history manager
- minio_client: cli S3 client
- neovide: graphical interface for neovim in rust
- neovim: best vim fork ever #neovim #development
- nerdfonts: fonts patched with icons and glyphs
- nfs_client: nfs client software
- nfs_server: nfs server software
- nginxls: nginx configuration language server
- nodejs: javascript runtime engine
- nomad: application orchestration by hashicorp
- nwg_hello: a greetd greeter
- packer: machine builder by hashicorp
- pandoc: universal document translator
- pgadmin: postgresql administration gui
- npm: nodejs package manager
- pipx: install pip packages as self contained executables
- podman: container runtime engine compatible with docker
- pulumi: infrastructure as code via regular programming languages
- pyright: python language server, linter and formatter
- python3: python3 language interpreter
- quobix-vacuum: openapi linter and sdk written in go
- restic: an advanced backup system
- revive: a fast and strict linter for go
- ripgrep: fast modern grep replacement
- rust: the rust programming language
- samba_client: client software for samba
- samba_server: server software for samba
- sd: a modern replacement for sed
- sdbus_cpp_2: systemd dbus library version 2
- sqlfluff: sql linter
- sqlls: sql language server
- starship: command line prompt generator
- stow: manage dotfiles easily
- tailscale: p2p vpn with wireguard
- tailwindcss-languageserver: tailwindcss language server
- templ: generate HTML using go
- terraform: infrastructre as code via configuration files
- terraformls: terraform language server
- thunderbird: email client from mozilla
- tidy: html linter and formatter
- tldr: manpage summarizer
- tmux: terminal multiplexer
- uwsm: universal wayland system manager
- vault: secrets management by hashicorp
- xdg_desktop_portal_hyprland: xdg portal for hyprland
- xh: cli curl replacement
- yamlls: yaml language server
- yazi: terminal file manager in rust _default method_ **source**
- zfs: the zetabyte filesystem
- zig: the zig programming language
- zls: the zig language server
- zoxide: easily jump between directories
- zsh: Z shell

View File

@@ -1,4 +1,12 @@
# 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 }}
become: "{{ install_become }}"
@@ -17,7 +25,7 @@
mode: "{{ appimage.mode | default('0755') }}"
owner: "{{ appimage.owner | default(ansible_user_id) }}"
group: "{{ appimage.group | default(ansible_user_gid) }}"
url: "{{ appimage.url }}"
url: "{{ appimage.url }}/{{ appimage.filename }}"
dest: "{{ path_appimage }}/{{ appimage.name }}/{{ appimage.filename }}"
checksum: "{{ appimage.checksum | default(omit) }}"
decompress: false

View File

@@ -5,9 +5,25 @@
files: "{{ pkg.files | default([]) }}"
ansible.builtin.include_tasks: helpers/clean_install.yml
- name: Install go package using system go
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
when:
- go_imethod == 'system'
environment:
GOBIN: "{{ path_bin }}"
ansible.builtin.command:
creates: "{{ pkg.bin }}"
argv:
- go
- install
- "{{ pkg.url }}"
- name: Install go package "{{ pkg.url }}"
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
when:
- go_imethod != 'system'
environment:
GOBIN: "{{ path_bin }}"
GOROOT: "{{ path_go }}"

View File

@@ -5,21 +5,29 @@
## Variables:
##
---
- name: Fetch source code
- name: Fetch source code git
vars:
path: "{{ pkg.path }}"
repo: "{{ pkg.repo }}"
version: "{{ pkg.version | default(omit) }}"
when:
- pkg.repo is defined
ansible.builtin.include_tasks: helpers/git.yml
- name: Fetch source code archive
vars:
archive: "{{ pkg }}"
when:
- pkg.extract_to is defined
ansible.builtin.include_tasks: helpers/archive.yml
- name: Run configure target
when:
- pkg.target.configure is defined
register: make_configure
community.general.make:
ansible.builtin.command:
chdir: "{{ pkg.path }}"
target: "{{ pkg.target.configure.name }}"
params: "{{ pkg.target.configure.params | default(omit) }}"
argv: ["./configure", "{{ pkg.target.configure.options }}"]
- name: Run build target
when:

View File

@@ -10,7 +10,7 @@
name: "{{ __nerdfonts[nf]['archive'] | default(nf) }}.tar.xz"
links:
- from: "{{ path_archive }}/nerdfonts/{{ nf }}"
to: "{{ install_prefix }}/{{ nerdfonts_install_path }}/{{ nf }}"
to: "{{ install_prefix }}/{{ nerdfonts.install_path }}/{{ nf }}"
force: true
- name: Append config to pkg archive

View File

@@ -1,8 +1,5 @@
# vim: set filetype=yaml.ansible :
---
- name: Dump npm pkg
ansible.builtin.debug:
var: pkg
- name: Install npm
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"

43
tasks/pkgs/7zip.yml Normal file
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 }}"
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
loop: "{{ air.pkg_deps }}"
loop_control:
@@ -53,9 +47,6 @@
- name: Add air to install list
ansible.builtin.set_fact:
pkg_go: "{{ pkg_go + [air_go_pkg] }}"
- name: Finalise air source install
ansible.builtin.set_fact:
air_install: "{{ air_imethod }}={{ air_go_pkg }}"
- name: Finalize air configuration

View File

@@ -10,14 +10,16 @@
ansible.builtin.set_fact:
alacritty:
methods:
- source
- system
Archlinux: [system, source]
default: [source]
- name: Finalise alacritty default facts
ansible.builtin.set_fact:
alacritty:
methods: "{{ alacritty.methods[os_family] | default(alacritty.methods.default) }}"
build_flags: "{{ alacritty_build_flags | default( ['--release'] ) }}"
version: "{{ alacritty_version | default('0.16.1') }}"
pkgname:
RedHat: alacritty
Debian: alacritty
Alpine: alacritty
Archlinux: alacritty
git:
repo: https://github.com/alacritty/alacritty
version: "{{ alacritty_version | default('v0.16.1') }}"

View File

@@ -8,19 +8,22 @@
---
- name: Set ansible_lint default facts # {{{
ansible.builtin.set_fact:
ansible_lint_version: "{{ ansible_lint_version | default('latest') }}"
ansible_lint:
methods:
- source
- system
default: [source]
Archlinux: [system, source]
pkgname:
RedHat: ansible-lint
Debian: ansible-lint
Archlinux: ansible-lint
Alpine: ansible-lint
default: ansible-lint
FreeBSD: py311-ansible-lint
pip:
name: ansible_lint
- name: Finalise ansible_lint default facts
ansible.builtin.set_fact:
ansible_lint:
methods: "{{ ansible_lint.methods[os_family] | default(ansible_lint.methods.default) }}"
version: "{{ ansible_lint_version | default('latest') }}"
pkgname: "{{ ansible_lint.pkgname[os_family] | default(ansible_lint.pkgname.default) }}"
pip:
name: ansible_lint
pkg_deps:
- pipx
# }}}
@@ -32,14 +35,7 @@
when:
- ansible_lint_imethod is undefined
block:
- name: Configure for RedHat <= 10
when:
- os_family == 'RedHat'
- ansible_distribution_major_version|int <= 10
ansible.builtin.set_fact:
ansible_lint_imethod: source
- name: Fallback set ansible_lint install method
- name: Set ansible_lint install method
when:
- ansible_lint_imethod is undefined
ansible.builtin.set_fact:
@@ -51,29 +47,23 @@
block:
- name: Add ansible_lint to pipx install list
ansible.builtin.set_fact:
pkg_pipx: "{{ pkg_pipx + [ansible_lint.pkgname['pip']] }}"
- name: Finalise ansible_lint source install
ansible.builtin.set_fact:
ansible_lint_install: "{{ ansible_lint_imethod }}={{ ansible_lint.pkgname['pip'] }}"
- name: Append ansible-lint to system install list
when:
- ansible_lint_imethod == 'system'
block:
pkg_pipx: "{{ pkg_pipx + [ansible_lint.pip.name }}"
ansible_lint_install: "{{ ansible_lint_imethod }}={{ ansible_lint.pip.name }}"
- name: Add ansible lint package deps
loop: "{{ ansible_lint.pkg_deps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: pkgs/{{ dep }}.yml
- name: Append ansible-lint to system install list
when:
- ansible_lint_imethod == 'system'
block:
- name: Queue ansible_lint system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ansible_lint_pkgname[os_family]] }}"
- name: Finalise ansible_lint system install
ansible.builtin.set_fact:
ansible_lint_install: "{{ ansible_lint_imethod }}={{ ansible_lint.pkgname[os_family] }}"
pkg_sys: "{{ pkg_sys + [ansible_lint.pkgname] }}"
ansible_lint_install: "{{ ansible_lint_imethod }}={{ ansible_lint.pkgname }}"
- name: Complete ansible_lint configuration
ansible.builtin.set_fact:

View File

@@ -10,8 +10,14 @@
ansible.builtin.set_fact:
ansible_ls:
methods:
- source
- system
default: [system, source]
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:
name: '@ansible/ansible-language-server'
global: true
@@ -29,6 +35,15 @@
ansible.builtin.set_fact:
ansible_ls_imethod: "{{ imethod if imethod in ansible_ls.methods else ansible_ls.methods[0] }}"
- name: Configure ansible_ls system install
when:
- ansible_ls_imethod == 'system'
block:
- name: Queue ansible_ls system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ansible_ls.pkgname] }}"
ansible_ls_install: "{{ ansible_ls_imethod }}={{ ansible_ls.pkgname }}"
- name: Configure ansible_ls source install
when:
- ansible_ls_imethod == 'source'

View File

@@ -10,11 +10,19 @@
ansible.builtin.set_fact:
bashls:
methods:
- source
Archlinux: [system, source]
default: [source]
pkgname:
default: bash-language-server
- name: Finalise bashls default facts
ansible.builtin.set_fact:
bashls:
methods: "{{ bashls.methods[os_family] | default(bashls.methods.default) }}"
npm_pkg:
name: bash-language-server
global: true
version: latest
pkgname: "{{ bashls.pkgname[os_family] | default(bashls.pkgname.default) }}"
# }}}
- name: Configure bashls
when:
@@ -26,6 +34,15 @@
ansible.builtin.set_fact:
bashls_imethod: "{{ imethod if imethod in bashls.methods else bashls.methods[0] }}"
- name: Configure bashls system install
when:
- bashls_imethod == 'system'
block:
- name: Queue bashls system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [bashls.pkgname] }}"
bashls_install: "{{ bashls_imethod }}={{ bashls.pkgname }}"
- name: Configure bashls source install
when:
- bashls_imethod == 'source'

View File

@@ -71,8 +71,6 @@
- broot_imethod == 'system'
block:
- name: Append broot to pkg_sys
when:
- ansible_system == 'Darwin'
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + ['broot'] }}"

View File

@@ -0,0 +1,43 @@
# vim: set filetype=yaml.ansible :
#
## Package: btrfs-progs
## Description: programs to manipulate the btrfs filesystem
## Version: system
## Methods: system
## Helpers: -
---
- name: Set btrfs-progs default facts # {{{
ansible.builtin.set_fact:
btrfs_progs:
methods:
default: [system]
pkgname:
default: btrfs-progs
- name: Finalise btrfs-progs default facts
ansible.builtin.set_fact:
btrfs_progs:
methods: "{{ btrfs_progs.methods[os_family] | default(btrfs_progs.methods.default) }}"
pkgname: "{{ btrfs_progs.pkgname[os_family] | default(btrfs_progs.pkgname.default) }}"
# }}}
- name: Configure btrfs-progs
when:
- "'btrfs-progs' not in __configured"
block:
- name: Set btrfs-progs install method
when:
- btrfs_progs_imethod is undefined
ansible.builtin.set_fact:
btrfs_progs_imethod: "{{ imethod if imethod in btrfs_progs.methods else btrfs_progs.methods[0] }}"
- name: Configure btrfs-progs system install
when:
- btrfs_progs_imethod == 'system'
block:
- name: Queue btrfs-progs system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [btrfs_progs.pkgname] }}"
btrfs_progs_install: "{{ btrfs_progs_imethod }}={{ btrfs_progs.pkgname }}"
- name: Finalise btrfs-progs configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'btrfs-progs': btrfs_progs_install } ) }}"

View File

@@ -10,12 +10,20 @@
ansible.builtin.set_fact:
cargo:
methods:
- system
default: [system]
pkgname:
RedHat: cargo
Debian: cargo
Alpine: cargo
FreeBSD: cargo
default: cargo
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
when:
@@ -27,25 +35,25 @@
ansible.builtin.set_fact:
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
when:
- cargo_imethod == "system"
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
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [cargo.pkgname[os_family]] }}"
pkg_sys: "{{ pkg_sys + [cargo.pkgname] }}"
- name: Finalise cargo system install
ansible.builtin.set_fact:
cargo_install: "{{ cargo_imethod }}={{ cargo.pkgname[os_family] }}"
cargo_install: "{{ cargo_imethod }}={{ cargo.pkgname }}"
- name: Finalize cargo configuration
ansible.builtin.set_fact:

View File

@@ -13,6 +13,8 @@
- source
go_pkg: github.com/cheat/cheat/cmd/cheat
version: latest
pkg_deps:
- go
# }}}
- name: Configure cheat
when:
@@ -28,12 +30,18 @@
when:
- cheat_imethod == 'source'
block:
- name: Queue package dependencies
loop: "{{ cheat.pkg_deps }}"
loop_control:
loop_var: dep
ansible.builtin.include_tasks: pkgs/{{ dep }}.yml
- name: Configure cheat go install
ansible.builtin.set_fact:
cheat_go_install:
url: "{{ cheat.go_pkg }}@{{ cheat.version }}"
bin: "{{ path_bin }}/cheat"
- name: Append cheat to pkg_go
ansible.builtin.set_fact:
pkg_go: "{{ pkg_go + [cheat_go_install] }}"

View File

@@ -10,8 +10,17 @@
ansible.builtin.set_fact:
choose:
methods:
- source
Archlinux: [system, source]
default: [source]
pkgname:
default: choose
- name: Finalise choose default facts
ansible.builtin.set_fact:
choose:
methods: "{{ choose.methods[os_family] | default(choose.methods.default) }}"
pkgname: "{{ choose.pkgname[os_family] | default(choose.pkgname.default)}}"
version: 1.3.7
choose_install: undefined
# }}}
- name: Configure choose
when:
@@ -23,6 +32,15 @@
ansible.builtin.set_fact:
choose_imethod: "{{ imethod if imethod in choose.methods else choose.methods[0] }}"
- name: Configure choose system install
when:
- choose_imethod == 'system'
block:
- name: Queue choose system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [choose.pkgname] }}"
choose_install: "{{ choose_imethod }}={{ choose.pkgname }}"
- name: Configure choose source install
when:
- choose_imethod == 'source'
@@ -36,9 +54,6 @@
- name: Append choose to pkg_cargo
ansible.builtin.set_fact:
pkg_cargo: "{{ pkg_cargo + [choose_cargo_install] }}"
- name: Finalise choose cargo install
ansible.builtin.set_fact:
choose_install: "{{ choose_imethod }}={{ choose_cargo_install }}"
- name: Finalise choose configuration

View File

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

0
tasks/pkgs/curl.yml Normal file
View File

View File

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

0
tasks/pkgs/docker.yml Normal file
View File

View File

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

View File

0
tasks/pkgs/e2fsprogs.yml Normal file
View File

View File

@@ -10,8 +10,15 @@
ansible.builtin.set_fact:
eza:
methods:
- source
- system
Archlinux: [system, source]
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
when:
@@ -23,6 +30,15 @@
ansible.builtin.set_fact:
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
when:
- eza_imethod == "source"

View File

View File

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

0
tasks/pkgs/ffmpeg.yml Normal file
View File

0
tasks/pkgs/fuse.yml Normal file
View File

View File

@@ -9,95 +9,58 @@
- name: Set ghostty default facts # {{{
ansible.builtin.set_fact:
ghostty:
version: 1.3.1
base_url: https://releases.files.ghostty.org
# install methods per distribution
default:
methods:
- source
pkg_deps: &pkgdeps
- zig
build_deps:
methods:
Archlinux: [system, source, appimage]
Alpine: [system, source, appimage]
default: [source, appimage]
pkgname:
default: ghostty
build_deps:
default:
- gtk4
- libadwaita
- gtk4-layer-shell
- pkgconf
- gettext
Redhat: &redhat
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
RedHat:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
AlmaLinux: *redhat
CentOS: *redhat
Rocky: *redhat
Debian: &debian
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
Debian:
- libgtk-4-dev
- libgtk4-layer-shell-dev
- libadwaita-1-dev
- gettext
- libxml2-utils
Ubuntu: *debian
Raspbian: *debian
Linux Mint: *debian
Archlinux: &arch
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
Archlinux:
- gtk4
- gtk4-layer-shell
- libadwaita
- gettext
pkgname: ghostty
Majaro: *arch
Fedora:
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
Alpine:
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
Alpine:
- gtk4.0-dev
- libadwaita-dev
- pkgconf
- ncurses
- gettext
pkgname: ghostty
# }}}
- name: Set ghostty facts
- name: Finalise ghostty default facts
ansible.builtin.set_fact:
ghostty:
version: "{{ ghostty_version | default(ghostty.version) }}"
methods: "{{ ghostty[distribution].methods | default(_methods['default']) }}"
source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz"
archive: "ghostty-{{ ghostty.version }}.tar.gz"
pkg_deps: "{{ ghostty[distribution].pkg_deps | default(omit) }}"
build_deps: "{{ ghostty[distribution].build_deps | default(ghostty.default.build_deps) }}"
version: "{{ ghostty_version | default('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) }}"
appimage:
url: https://github.com/pkgforge-dev/ghostty-appimage/releases/download
name: ghostty
# }}}
- name: Configure ghostty
when:
- "'ghostty' not in __configured"
block:
- name: Set ghostty install method
when:
@@ -105,6 +68,15 @@
ansible.builtin.set_fact:
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
when:
- ghostty_imethod == 'source'
@@ -134,23 +106,28 @@
build_flags:
- "-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
when:
- ghostty_imethod == 'appimage'
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
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 }}"
pkg_appimage: "{{ pkg_appimage + [ghostty_appimage_install] }}"
ghostty_install: "{{ ghostty_imethod }}={{ ghostty_appimage_install }}"
- name: Finalise ghostty configuration
ansible.builtin.set_fact:

0
tasks/pkgs/glow.yml Normal file
View File

0
tasks/pkgs/gnupg2.yml Normal file
View File

View File

@@ -14,6 +14,7 @@
RedHat: go
Debian: go
Darwin: go
Archlinux: go
FreeBSD:
default: go
1.26: go126
@@ -77,6 +78,7 @@
- name: Go system package install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [go_pkgname] }}"
go_install: "{{ go_imethod }}={{ go_pkgname }}"
- name: Configure go archive installation
when:

View File

@@ -35,8 +35,8 @@
- name: Configure gopls source install
ansible.builtin.set_fact:
gopls_go_pkg:
url: "{{ gopls.install_url }}@ {{ gopls.version }}"
bin: "{{ path_bind }}/gopls"
url: "{{ gopls.install_url }}@{{ gopls.version }}"
bin: "{{ path_bin }}/gopls"
files: "{{ gopls.install_files }}"
- name: Queue gopls for go_install

0
tasks/pkgs/greetd.yml Normal file
View File

0
tasks/pkgs/hdparm.yml Normal file
View File

View File

0
tasks/pkgs/hfsutils.yml Normal file
View File

0
tasks/pkgs/hugo.yml Normal file
View File

View File

@@ -9,6 +9,16 @@
- name: Set lazygit default facts # {{{
ansible.builtin.set_fact:
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
version: "{{ lazygit_version | default('latest') }}"
pkg_deps:
@@ -22,6 +32,15 @@
ansible.builtin.set_fact:
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
when:
- lazygit_imethod == 'source'

View File

0
tasks/pkgs/mariadb.yml Normal file
View File

0
tasks/pkgs/mysql.yml Normal file
View File

View File

@@ -2,7 +2,7 @@
#
## Package: neovim
## Description: fork of vim focusing on modern development
## Version: master
## Version: v0.12.1
## Methods: [source, system, appimage, archive]
## Helpers: [make, archive, appimage]
---
@@ -10,18 +10,47 @@
ansible.builtin.set_fact:
neovim:
methods:
- source
- system
- appimage
- archive
default: [system, source, appimage, archive]
pkgname:
default: neovim
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] | default(neovim.methods.default) }}"
git_repo: https://github.com/neovim/neovim
appimage:
base_url: https://github.com/neovim/neovim/releases/download
pkgname:
RedHat: neovim
Debian: neovim
Darwin: neovim
FreeBSD: neovim
pkg_deps:
- cmake
version: v0.12.1
pkgname: "{{ neovim.pkgname[os_family] | default(neovim.pkgname.default) }}"
build_files:
- to: lib64/nvim
- to: bin/nvim
@@ -32,32 +61,7 @@
build_pkgdeps:
- cmake
- git
build_deps:
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
build_deps: "{{ neovim.build_deps[os_family] | default(neovim.build_deps.default) }}"
# }}}
- name: Configure neovim
when:
@@ -86,7 +90,7 @@
neovim_src_install:
path: "{{ d_cache.path }}/neovim"
repo: "{{ neovim.git_repo }}"
version: "{{ neovim_version }}"
version: "{{ neovim.version }}"
targets:
build:
name: ""
@@ -97,9 +101,11 @@
install:
name: install
do_become: true
- name: Append neovim to source install list
ansible.builtin.set_fact:
pkg_make: "{{ pkg_make + [neovim_src_install] }}"
neovim_install: "{{ neovim_imethod }}={{ neovim_src_install }}"
- name: Finalized neovim configuration
ansible.builtin.set_fact:

View File

@@ -228,7 +228,7 @@
- name: Finalise nerdfonts archive install
ansible.builtin.set_fact:
nerdfonts_install: "{{ nerdfonts_imethod }}={{ nerdfont.install_list }}"
nerdfonts_install: "{{ nerdfonts_imethod }}={{ nerdfonts.install_list }}"
- name: Set nerdfonts_configured
ansible.builtin.set_fact:

View File

View File

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

0
tasks/pkgs/ntfs-3g.yml Normal file
View File

0
tasks/pkgs/ntfsprogs.yml Normal file
View File

0
tasks/pkgs/nvme.yml Normal file
View File

0
tasks/pkgs/openssh.yml Normal file
View File

0
tasks/pkgs/parted.yml Normal file
View File

0
tasks/pkgs/pciutils.yml Normal file
View File

45
tasks/pkgs/pipx.yml Normal file
View File

@@ -0,0 +1,45 @@
# vim: set filetype=yaml.ansible :
#
## Package: pipx
## Description: a runnable venv for simpler python packaging
## Version: system
## Methods: system
## Helpers: -
---
- name: Set pipx default facts # {{{
ansible.builtin.set_fact:
pipx:
methods:
default:
- system
pkgname:
Archlinux: python-pipx
default: pipx
- name: Finalise pipx default facts
ansible.builtin.set_fact:
pipx:
methods: "{{ pipx.methods[os_family] | default(pipx.methods.default) }}"
pkgname: "{{ pipx.pkgname[os_family] | default(pipx.pkgname.default) }}"
# }}}
- name: Configure pipx
when:
- "'pipx' not in __configured"
block:
- name: Set pipx install method
when:
- pipx_imethod is undefined
ansible.builtin.set_fact:
pipx_imethod: "{{ imethod if imethod in pipx.methods else pipx.methods[0] }}"
- name: Configure pipx system install
when:
- pipx_imethod == 'system'
block:
- name: Queue pipx for system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [pipx.pkgname] }}"
pipx_install: "{{ pipx_imethod }}={{ pipx.pkgname }}"
- name: Finalise pipx configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'pipx': pipx_install } ) }}"

0
tasks/pkgs/podman.yml Normal file
View File

0
tasks/pkgs/protobuf.yml Normal file
View File

0
tasks/pkgs/python.yml Normal file
View File

0
tasks/pkgs/python3.yml Normal file
View File

0
tasks/pkgs/rclone.yml Normal file
View File

43
tasks/pkgs/restic.yml Normal file
View File

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

40
tasks/pkgs/ripgrep.yml Normal file
View File

@@ -0,0 +1,40 @@
# vim: set filetype=yaml.ansible :
#
## Package: ripgrep
## Description: modern ultra fast grep
## Version: system
## Methods: system
## Helpers: -
---
- name: Set ripgrep default facts # {{{
ansible.builtin.set_fact:
ripgrep:
methods:
- system
pkgname:
RedHat: ripgrep
Debian: ripgrep
Archlinux: ripgrep
# }}}
- name: Configure ripgrep
when:
- "'ripgrep' not in __configured"
block:
- name: Set ripgrep install method
when:
- ripgrep_imethod is undefined
ansible.builtin.set_fact:
ripgrep_imethod: "{{ imethod if imethod in ripgrep.methods else ripgrep.methods[0] }}"
- name: Configure ripgrep system install
when:
- ripgrep_imethod == 'system'
block:
- name: Queue ripgrep for system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [ripgrep.pkgname[os_family]] }}"
ripgrep_install: "{{ ripgrep_imethod }}={{ ripgrep.pkgname[os_family] }}"
- name: Finalise ripgrep configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'ripgrep': ripgrep_install } ) }}"

0
tasks/pkgs/rpm.yml Normal file
View File

0
tasks/pkgs/rsync.yml Normal file
View File

View File

View File

0
tasks/pkgs/skopeo.yml Normal file
View File

View File

70
tasks/pkgs/stow.yml Normal file
View File

@@ -0,0 +1,70 @@
# vim: set filetype=yaml.ansible :
#
## Package: stow
## Description: GNU symbolic link manager
## Version: latest
## Methods: [system, source]
## Helpers: make
---
- name: Set stow default facts # {{{
ansible.builtin.set_fact:
stow:
methods:
Archlinux: [system, source]
default: [source]
pkgname:
default: stow
- name: Finalise stow default facts
ansible.builtin.set_fact:
stow:
methods: "{{ stow.methods[os_family] | default(stow.methods.default) }}"
pkgname: "{{ stow.pkgname[os_family] | default(stow.pkgname.default) }}"
baseurl: https://ftp.gnu.org/gnu/stow
version: 2.4.1
# }}}
- name: Configure stow
when:
- "'stow' not in __configured"
block:
- name: Set stow install method
when:
- stow_imethod is undefined
ansible.builtin.set_fact:
stow_imethod: "{{ imethod if imethod in stow.methods else stow.methods[0] }}"
- name: Configure stow system install
when:
- stow_imethod == 'system'
block:
- name: Queue stow for system install
ansible.builtin.set_fact:
pkg_sys: "{{ pkg_sys + [stow.pkgname] }}"
stow_install: "{{ stow_imethod }}={{ stow.pkgname }}"
- name: Configure stow source install
when:
- stow_imethod == 'source'
block:
- name: Set stow source install configuration
ansible.builtin.set_fact:
stow_src_install:
url: "{{ stow.baseurl }}/stow-{{ stow.version }}.tar.gz"
name: "stow-{{ stow.version }}.tar.gz"
extract_to: "{{ d_cache.path }}"
path: "{{ d_cache.path }}/stow-{{ stow.version }}"
target:
configure:
options: "--prefix={{ install_prefix }}"
build:
name: ""
install:
name: install
- name: Queue stow source install
ansible.builtin.set_fact:
pkg_make: "{{ pkg_make + [stow_src_install] }}"
stow_install: "{{ stow_imethod }}={{ stow_src_install }}"
- name: Finalise stow configuration
ansible.builtin.set_fact:
__configured: "{{ __configured | combine( { 'stow': stow_install } ) }}"

View File

0
tasks/pkgs/sudo.yml Normal file
View File

0
tasks/pkgs/tar.yml Normal file
View File

0
tasks/pkgs/tmux.yml Normal file
View File

0
tasks/pkgs/udftools.yml Normal file
View File

0
tasks/pkgs/unar.yml Normal file
View File

0
tasks/pkgs/unzip.yml Normal file
View File

0
tasks/pkgs/vim.yml Normal file
View File

0
tasks/pkgs/xz.yml Normal file
View File

0
tasks/pkgs/yamllint.yml Normal file
View File

View File

@@ -6,11 +6,16 @@
## Methods: [source]
## Helpers: [cargo_build]
---
- name: Configure yazi installation # {{{
- name: Set yazi default facts # {{{
ansible.builtin.set_fact:
yazi:
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
git:
repo: https://github.com/sxyazi/yazi.git
@@ -53,6 +58,15 @@
ansible.builtin.set_fact:
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
when:
- yazi_imethod == 'source'

0
tasks/pkgs/zfs.yml Normal file
View File

View File

@@ -8,12 +8,21 @@
---
- name: Set zig default facts
ansible.builtin.set_fact:
methods:
- archive
- system
version: "{{ zig_version | default('0.15.2') }}"
archive:
url: https://ziglang.org/download
zig:
methods:
default: [archive]
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') }}"
archive:
url: https://ziglang.org/download
- name: Configure zig
when:
@@ -29,7 +38,8 @@
when:
- zig_imethod == 'system'
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
when:

0
tasks/pkgs/zip.yml Normal file
View File

0
tasks/pkgs/zls.yml Normal file
View File

View File

@@ -44,7 +44,7 @@
- name: Set zoxide cargo facts
ansible.builtin.set_fact:
pkg_cargo: "{{ pkg_cargo + [zoxide.cargo] }}"
zoxide_install: "{{ zoxide.imethod }}={{ zoxide.cargo }}"
zoxide_install: "{{ zoxide_imethod }}={{ zoxide.cargo }}"
- name: Set zoxide_configured
ansible.builtin.set_fact:

View File

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

0
tasks/pkgs/zstd.yml Normal file
View File