Role Name ========= Manage package installation for a number of packages that sometimes need special handling. Some are built from source, some are appimages, some are special sources like `cargo`, `npm`, `go`, etc. When defining a workstation role, I had a lot of packages that needed special instructions to properly install and use. I decided to simplify the management of those packages by creating a role with special handling. Included packages: - Desktop applications: alacritty, firefox, ghostty, kitty, neovide - Shell applications: btop, carapace, nushell, fzf, jq, neovim, pipx, ripgrep, stow, tmux, zoxide - Infrastructure applications: ansible, consul, nomad, packer, terraform - Development tools: cmake, git, go, nodejs, hugo, rust, tidy - Misc: editorconfig, hashicorp package repository, nerdfonts, pandoc, pytho3-pip, terra repository for fedora, zfs - Cargo packages: dotenv-linter, eza, htmx-lsp, starship - Go packages: air, buf, checkmake, glow, lazygit, revive, templ, gopls - NPM packages: ansible-language-server, commitlint-cli, commitlint-config-conventional, markdownlint-cli, quobix-vacuum, tailwindcss-languageserver - Pipx packages: cmakelang, sqlfluff Requirements ------------ Role Variables -------------- - packages: - List of packages to install - assume_missing_is_syspkg: - Bool. Default `true` - Handle non-supported packages as package manager packages - full_upgrade: - Bool. Default `false` - Do a full package upgrade first if `true` - install_state: - String. Default `present` - Set to `latest` to update packages - Set to `absent` to remove packages - *currently only supports remove package manager installed packages* - Valid choices: `present`, `latest`, `absent` - pkgconfig: - specific configuration for individual packages Dependencies ------------ Example Playbook ---------------- License ------- MIT Author Information ------------------ - Matthew Stobbs