clean up, refactor, documentation

- reducing amount of splitting in configs
- documenting configuration
This commit is contained in:
Matthew Stobbs
2025-01-24 23:23:24 -07:00
parent f8585192d5
commit 2f3690aded
34 changed files with 425 additions and 307 deletions

50
CONFIG.md Normal file
View File

@@ -0,0 +1,50 @@
Package Configuration
=====================
The following are individual packages that have configuration
and the default configuration values.
Change the configuration by passing the variable when calling
the role.
Packages
--------
```yaml
pkgconfig:
alacritty:
version: 0.15.0
carapace:
version: 1.1.1
git:
pkgs: #this example is for linux, homebrew names are used when on MacOS
- git
- git-delta
- git-email
- git-lfs
go:
version: 1.23.5
install_path: /usr/local
neovide:
version: 0.14.0
install_prefix: /usr/local
neovim:
use_syspkg: true #if false, will install the appimage
use_appimage: true #if false, will build from source
#used for appimage and source installs only
version: v0.10.3
install_prefix: /usr/local #binaries will be placed in <prefix>/bin
install_dir: /opt/nvim #where to put appimages
become: true #set to false if installing in the default user prefix
owner: root #who owns the installed packages. Determines become_user
group: root
build_type: Release #CMAKE build type
nerdfonts:
system_install: false #if true, install fonts system wide
install: #list of nerdfonts to install. Maps to brew names on macos
- CascadiaCode
- FiraCode
- HaskLig
rust:
rustup_managed: false #rustup isn't implemented yet
```

View File

@@ -1,38 +1,70 @@
Role Name Role Name
========= =========
A brief description of the role goes here. 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 Requirements
------------ ------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables Role Variables
-------------- --------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - 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 Dependencies
------------ ------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
Example Playbook Example Playbook
---------------- ----------------
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- { role: username.rolename, x: 42 }
License License
------- -------
BSD MIT
Author Information Author Information
------------------ ------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed). - Matthew Stobbs

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec={{ pkgconfig.neovide.install_prefix }}/bin/neovide
Name=Neovide
Icon={{ pkgconfig.neovide.install_prefix }}/share/icons/neovide.png

View File

@@ -1,8 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec={{ _neovide.install_prefix }}/bin/neovide
Name=Neovide
Icon={{ _neovide.install_prefix }}/share/icons/neovide.png

View File

@@ -1,8 +1,4 @@
--- ---
- ansible.builtin.include_vars:
file: go.yml
name: _go
- name: check go version - name: check go version
ansible.builtin.command: ansible.builtin.command:
cmd: "go version" cmd: "go version"
@@ -10,15 +6,15 @@
ignore_errors: true ignore_errors: true
- name: install/update go - name: install/update go
when: "'{{ _go.version }}' not in r_go_version.stdout" when: "'{{ pkgconfig.go.version }}' not in r_go_version.stdout"
block: block:
- name: set go arch - name: set go arch
ansible.builtin.set_fact: ansible.builtin.set_fact:
arch: "{{ _go.archmap[ansible_architecture] }}" arch: "{{ pkgconfig.go.archmap[ansible_architecture] }}"
- name: set go archive filename - name: set go archive filename
ansible.builtin.set_fact: ansible.builtin.set_fact:
go_archive: "go{{ _go.version }}.{{ ansible_system | lower }}-{{ arch }}.{{ _go.extmap[ansible_system] }}" go_archive: "go{{ pkgconfig.go.version }}.{{ ansible_system | lower }}-{{ arch }}.{{ pkgconfig.go.extmap[ansible_system] }}"
tags: tags:
- dev - dev
- go - go
@@ -35,7 +31,7 @@
ansible.builtin.get_url: ansible.builtin.get_url:
dest: "{{ d_go_dl_tmp.path }}/{{ go_archive }}" dest: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
url: "https://go.dev/dl/{{ go_archive }}" url: "https://go.dev/dl/{{ go_archive }}"
checksum: "{{ _go[_go.version][ansible_system][arch] }}" checksum: "{{ pkgconfig.go[pkgconfig.go.version][ansible_system][arch] }}"
decompress: false decompress: false
tags: tags:
- dev - dev
@@ -44,12 +40,12 @@
- name: ensure go install dir exists - name: ensure go install dir exists
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ _go.install_path }}" path: "{{ pkgconfig.go.install_path }}"
state: directory state: directory
- name: extract go package - name: extract go package
ansible.builtin.unarchive: ansible.builtin.unarchive:
dest: "{{ _go.install_path }}" dest: "{{ pkgconfig.go.install_path }}"
src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}" src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
remote_src: true remote_src: true
when: ansible_system == 'Linux' when: ansible_system == 'Linux'

View File

@@ -1,8 +1,4 @@
--- ---
- ansible.builtin.include_vars:
file: neovide.yml
name: _neovide
- name: build and install neovide - name: build and install neovide
become: true become: true
ansible.builtin.command: ansible.builtin.command:
@@ -10,20 +6,20 @@
- cargo - cargo
- install - install
- --root - --root
- "{% if ansible_os_family != 'Linux' %}.{% else %}{{ _neovide.install_prefix }}" - "{% if ansible_os_family != 'Linux' %}.{% else %}{{ pkgconfig.neovide.install_prefix }}"
- --git - --git
- https://github.com/neovide/neovide.git - "{{ pkgconfig.neovide.git_repo }}"
- --tag - --tag
- "{{ _neovide.version }}" - "{{ pkgconfig.neovide.version }}"
- name: Copy neovide icon - name: Copy neovide icon
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: neovide/icon.png src: neovide/icon.png
dest: "{{ _neovide.install_prefix }}/share/icons/neovide.png" dest: "{{ pkgconfig.neovide.install_prefix }}/share/icons/neovide.png"
- name: Copy neovide.desktop - name: Copy neovide.desktop
become: true become: true
ansible.builtin.templatefile: ansible.builtin.templatefile:
src: neovide/neovide.desktop src: neovide/neovide.desktop
dest: "{{ _neovide.install_prefix }}/share/applications/neovide.desktop" dest: "{{ pkgconfig.neovide.install_prefix }}/share/applications/neovide.desktop"

View File

@@ -1,7 +1,6 @@
- ansible.builtin.include_vars: ---
file: neovim.yml - name: build neovim from source
name: _neovim block:
- name: create temp path - name: create temp path
ansible.builtin.tempfile: ansible.builtin.tempfile:
state: directory state: directory
@@ -12,25 +11,45 @@
ansible.builtin.git: ansible.builtin.git:
depth: 1 depth: 1
dest: "{{ d_nvim_tmp.path }}/neovim" dest: "{{ d_nvim_tmp.path }}/neovim"
repo: "{{ _neovim.git_repo }}" repo: "{{ pkgconfig.neovim.git_repo }}"
version: "v{{ _neovim.version }}" version: "{{ pkgconfig.neovim.version }}"
- name: build neovim - name: build and install neovim
ansible.builtin.command: ansible.builtin.make:
chdir: "{{ d_nvim_tmp.path }}/neovim" chdir: "{{ d_nvim_tmp.path }}/neovim"
cmd: params:
- make CMAKE_BUILD_TYPE: "{{ pkgconfig.neovim.build_type }}"
- "CMAKE_BUILD_Type={{ _neovim.build_type }}" CMAKE_INSTALL_PREFIX: "{{ pkgconfig.neovim.install_prefix }}"
- "CMAKE_INSTALL_PREFIX={{ _neovim.install_prefix }}" target: install
become: "{{ pkgconfig.neovim.become }}"
become_user: "{% if pkgconfig.neovim.become %}{{ pkgconfig.neovim.owner }}{% else %}~{% endif %}"
when: not pkgconfig.neovim.use_appimage
- name: install neovim appimage - name: install neovim appimage
become: true block:
ansible.builtin.get_url: - ansible.builin.file:
url: https://github.com/neovim/neovim/releases/download/v{{ _neovim.version }}/nvim.appimage state: directory
dest: /usr/local/bin/nvim mode: "0755"
checksum: sha256:6a021e9465fe3d3375e28c3e94c1c2c4f7d1a5a67e4a78cf52d18d77b1471390 path: "{{ pkgconfig.neovim.install_dir }}"
tags: owner: "{{ pkgconfig.neovim.owner }}"
- RedHat group: "{{ pkgconfig.neovim.group }}"
- linux
- package - ansible.builtin.get_url:
mode: "0755"
decompress: false
backup: true
url: "{{ pkgconfig.neovim.appimage_url_pfx }}/{{ pkgconfig.neovim.version }}/nvim.appimage"
checksum: "sha256:{{ pkgconfig.neovim.appimage_url_pfx }}/{{ pkgconfig.neovim.version }}/nvim.appimage.sha256sum"
dest: "{{ pkgconfig.neovim.install_dir }}/nvim.appimage.{{ pkgconfig.neovim.version }}"
owner: "{{ pkgconfig.neovim.owner }}"
group: "{{ pkgconfig.neovim.group }}"
- ansible.builtin.file:
state: link
src: "{{ pkgconfig.neovim.install_dir }}/nvim.appimage.{{ pkgconfig.neovim.version }}"
path: "{{ pkgconfig.neovim.install_prefix }}/bin/nvim"
when:
- pkgconfig.neovim.use_appimage
become: "{{ pkgconfig.neovim.become }}"
become_user: "{% if pkgconfig.neovim.become %}{{ pkgconfig.neovim.owner }}{% else %}~{% endif %}"

View File

@@ -2,20 +2,22 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: alacritty.yml file: alacritty.yml
name: _alacritty name: _alacritty
- ansible.builtin.set_fact:
pkgconfig.alacritty: "{{ _alacritty | ansible.builtin.combine(pkgconfig.alacritty) }}"
- name: linux based installation - name: linux based installation
when: ansible_system == 'Linux' when: ansible_system == 'Linux'
block: block:
- name: install rust and cargo - name: install rust and cargo
ansible.builtin.include_tasks: ansible.builtin.include_tasks:
file: "pkgs/{{ ansible_os_family }}/rust.yml" file: "pkgs/rust.yml"
tags: tags:
- rust - rust
- dependency - dependency
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
syspkgs: "{{ syspkgs + _alacritty[ansible_distribution].build_deps }}" syspkgs: "{{ syspkgs + pkgconfig.alacritty.build_deps[ansible_distribution] }}"
srcpkgs: "{{ srcpkgs + [ 'alacritty' ] }}" srcpkgs: "{{ srcpkgs + [ 'alacritty' ] }}"
tags: tags:
- syspkgs - syspkgs

View File

@@ -3,4 +3,3 @@
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
syspkgs: "{{ syspkgs + [ 'ansible' ] }}" syspkgs: "{{ syspkgs + [ 'ansible' ] }}"

View File

@@ -2,6 +2,8 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: carapace.yml file: carapace.yml
name: _carapace name: _carapace
- ansible.builtin.set_fact:
pkgconfig.carapace: "{{ _carapace | ansible.builtin.combine(pkgconfig.carapace) }}"
- name: enable carapace yum repository - name: enable carapace yum repository
ansible.builtin.yum_repository: ansible.builtin.yum_repository:
@@ -24,4 +26,4 @@
- name: add carapace to syspkgs - name: add carapace to syspkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + _carapace[ansible_system].pkgs }}" syspkgs: "{{ syspkgs + pkgconfig.carapace.pkgs[ansible_system] }}"

View File

@@ -1,12 +1,14 @@
# load hashicorp configuration
--- ---
- ansible.builtin.include_vars:
file: hashicorp_repo.yml
name: _hashicorp
- name: ensure hashicorp repo is active - name: ensure hashicorp repo is active
ansible.builtin.include_tasks: ansible.builtin.include_tasks:
file: "pkgs/hashicorp_repo.yml" file: "pkgs/hashicorp_repo.yml"
- name: append to pkgs - name: append to syspkgs
set_fact: set_fact:
tappkgs: "{{ tappkgs + [ _hashicorp.consul[ansible_os_family] ] }}" syspkgs: "{{ syspkgs + [ pkgconfig.hashicorp.consul[ansible_system] ] }}"
when: ansible_system == 'Linux'
- set_fact:
tappkgs: "{{ tappkgs + [ pkgconfig.hashicorp.consul[ansible_system] ] }}"
when: ansible_system == 'Darwin'

View File

@@ -2,12 +2,12 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: git.yml file: git.yml
name: _git name: _git
- ansible.builtin.set_fact:
pkgconfig.git: "{{ _git | ansible.builtin.combine(pkgconfig.git) }}"
- ansible.builtin.set_fact:
pkgconfig.git.pkgs: "{{ pkgconfig.git.pkgs[ansible_system] }}"
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
syspkgs: "{{ syspkgs + _git[ansible_system].pkgs }}" syspkgs: "{{ syspkgs + pkgconfig.git.pkgs }}"
tags:
- RedHat
- linux
- package

View File

@@ -1,4 +1,10 @@
--- ---
- ansible.builtin.include_vars:
file: go.yml
name: _go
- ansible.builtin.set_fact:
pkgconfig.go: "{{ _go | ansible.builtin.combine(pkgconfig.go) }}"
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
srcpkgs: "{{ srcpkgs + [ 'go' ] }}" srcpkgs: "{{ srcpkgs + [ 'go' ] }}"

View File

@@ -2,6 +2,8 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: hashicorp_repo.yml file: hashicorp_repo.yml
name: _hashicorp name: _hashicorp
- ansible.builtin.set_fact:
pkgconfig.hashicorp: "{{ _hashicorp | ansible.builtin.combine(pkgonfig.hashicorp) }}"
- name: RedHat repository - name: RedHat repository
when: ansible_os_family == 'RedHat' when: ansible_os_family == 'RedHat'
@@ -13,7 +15,7 @@
- ansible_distribution_major_version|int >= 41 - ansible_distribution_major_version|int >= 41
ansible.builtin.command: ansible.builtin.command:
creates: /etc/yum.repos.d/hashicorp.repo creates: /etc/yum.repos.d/hashicorp.repo
cmd: "dnf config-manager addrepo --from-repofile={{ _hashicorp.Linux.Fedora.repo }}" cmd: "dnf config-manager addrepo --from-repofile={{ pkgconfig.hashicorp.Linux.Fedora.repo }}"
- name: enable hashicorp repo for fedora <41 - name: enable hashicorp repo for fedora <41
become: true become: true
@@ -22,7 +24,7 @@
- ansible_distribution_major_version|int < 41 - ansible_distribution_major_version|int < 41
ansible.builtin.command: ansible.builtin.command:
creates: /etc/yum.repos.d/hashicorp.repo creates: /etc/yum.repos.d/hashicorp.repo
cmd: "dnf config-manager --add-repo {{ _hashicorp.Linux.Fedora.repo }}" cmd: "dnf config-manager --add-repo {{ pkgconfig.hashicorp.Linux.Fedora.repo }}"
- name: enable hashicorp repo for RHEL like distribution - name: enable hashicorp repo for RHEL like distribution
become: true become: true
@@ -30,7 +32,7 @@
- ansible_distribution != 'Fedora' - ansible_distribution != 'Fedora'
ansible.builtin.command: ansible.builtin.command:
creates: /etc/yum.repos.d/hashicorp.repo creates: /etc/yum.repos.d/hashicorp.repo
cmd: "dnf config-manager --add-repo {{ _hashicorp.Linux.RedHat.repo }}" cmd: "dnf config-manager --add-repo {{ pkgconfig.hashicorp.Linux.RedHat.repo }}"
- name: Debian based repository - name: Debian based repository
when: ansible_os_family == 'Debian' when: ansible_os_family == 'Debian'
@@ -57,7 +59,7 @@
- name: enable hasicorp repo for debian - name: enable hasicorp repo for debian
ansible.builtin.apt_repository: ansible.builtin.apt_repository:
repo: "{{ _hashicorp.Linux.Debian.repo }}" repo: "{{ pkgconfig.hashicorp.Linux.Debian.repo }}"
state: present state: present
update_cache: false update_cache: false

View File

@@ -2,7 +2,9 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: kitty.yml file: kitty.yml
name: _kitty name: _kitty
- ansible.builtin.set_fact:
pkgconfig.kitty: "{{ _kitty | ansible.builtin.combine(pkgconfig.kitty) }}"
- name: add to syspkgs - name: add to syspkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + _kitty[ansible_system].pkgs }}" syspkgs: "{{ syspkgs + pkgconfig.kitty.pkgs[ansible_system] }}"

View File

@@ -2,11 +2,18 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: neovide.yml file: neovide.yml
name: _neovide name: _neovide
- ansible.builtin.set_fact:
pkgconfig.neovide: "{{ _neovide | ansible.builtin.combine(pkgconfig.neovide) }}"
- ansible.builtin.include_tasks:
file: "pkgs/{{ pkgdep }}.yml"
loop: "{{ pkgconfig.neovide.local_deps }}"
loop_control:
loop_var: pkgdep
- name: append to pkgs - name: append to pkgs
when: ansible_system == 'Linux' when: ansible_system == 'Linux'
set_fact: set_fact:
syspkgs: "{{ syspkgs + _neovide[ansible_os_family].pkgdeps }}" syspkgs: "{{ syspkgs + pkgconfig.neovide.pkgdeps[ansible_os_family] }}"
srcpkgs: "{{ srcpkgs + [ 'neovide' ] }}" srcpkgs: "{{ srcpkgs + [ 'neovide' ] }}"
- name: append neovide to caskpkgs - name: append neovide to caskpkgs

View File

@@ -2,33 +2,15 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: neovim.yml file: neovim.yml
name: _neovim name: _neovim
- ansible.builtin.set_fact:
pkgconfig.neovim: "{{ _neovim | ansible.builtin.combine(pkgconfig.neovim) }}"
- name: linux installation - name: append neovim to srcpkgs
when: ansible_system == 'Linux' when: not pkgconfig.neovim.use_syspkg
block: set_fact:
- name: ensure install dir exists srcpkgs: "{{ srcpkgs + ['neovim'] }}"
ansible.builtin.file:
state: directory
path: "{{ _neovim.install_dir }}"
- name: install neovim appimage
ansible.builtin.get_url:
backup: true
url: "{{ _neovim[ansible_system].appimage.dl }}"
dest: "{{ _neovim.install_dir }}/nvim.appimage"
mode: "0755"
owner: root
group: root
checksum: "{{ _neovim[ansible_system].appimage.checksum }}"
- name: link neovim to prefix bin
ansible.builtin.file:
state: link
src: "{{ _neovim.install_dir }}/nvim.appimage }}"
path: "{{ _neovim.install_prefix }}/bin/nvim }}"
- name: append neovim to syspkgs - name: append neovim to syspkgs
when: ansible_system == 'Darwin' when: pkgconfig.neovim.use_syspkg
set_fact: set_fact:
syspkgs: "{{ syspkgs + ['neovim'] }}" syspkgs: "{{ syspkgs + ['neovim'] }}"

View File

@@ -2,6 +2,8 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: nerdfonts.yml file: nerdfonts.yml
name: _nerdfonts name: _nerdfonts
- ansible.builtin.set_fact:
pkgconfig.nerdfonts: "{{ _nerdfonts | ansible.builtin.combine(pkgconfig.nerdfons) }}"
- name: append to srcpkgs - name: append to srcpkgs
when: ansible_system == 'Linux' when: ansible_system == 'Linux'
@@ -12,6 +14,6 @@
when: ansible_system == 'Darwin' when: ansible_system == 'Darwin'
set_fact: set_fact:
caskpkgs: "{{ caskpkgs + [ 'font-' + font.brew + '-nerd-font' ] }}" caskpkgs: "{{ caskpkgs + [ 'font-' + font.brew + '-nerd-font' ] }}"
loop: "{{ _nerdfonts.fonts }}" loop: "{{ pkgconfig.nerdfonts.fonts }}"
loop_control: loop_control:
loop_var: font loop_var: font

View File

@@ -2,9 +2,11 @@
- ansible.builtin.include_vars: - ansible.builtin.include_vars:
file: rust.yml file: rust.yml
name: _rust name: _rust
- ansible.builtin.set_fact:
pkgconfig.rust: "{{ _rust | ansible.builtin.combine(pkgconfig.rust) }}"
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
syspkgs: "{{ syspkgs + _rust[ansible_system].pkgs }}" syspkgs: "{{ syspkgs + _rust.pkgs[ansible_system] }}"
tags: tags:
- packages - packages

View File

@@ -1,5 +1,4 @@
--- ---
- name: append to pkgs - name: append to pkgs
set_fact: set_fact:
syspkgs: "{{ syspkgs + [ 'tmux' ] }}" syspkgs: "{{ syspkgs + [ 'tmux' ] }}"

View File

@@ -1,127 +0,0 @@
# load namespaced variables and merge with passed in values
---
- ansible.builtin.include_vars:
file: alacritty.yml
name: _alacritty
- ansible.builtin.set_fact:
pkgconfig.alacritty: "{{ _alacritty | ansible.builtin.combine(pkgconfig.alacritty) }}"
- ansible.builtin.include_vars:
file: carapace.yml
name: _carapace
- ansible.builtin.set_fact:
pkgconfig.carapace: "{{ _carapace | ansible.builtin.combine(pkgconfig.carapace) }}"
- ansible.builtin.include_vars:
file: consul.yml
name: _consul
- ansible.builtin.set_fact:
pkgconfig.consul: "{{ _consul | ansible.builtin.combine(pkgconfig.consul) }}"
- ansible.builtin.include_vars:
file: git.yml
name: _git
- ansible.builtin.set_fact:
pkgconfig.git: "{{ _git | ansible.builtin.combine(pkgconfig.git) }}"
- ansible.builtin.include_vars:
file: go.yml
name: _go
- ansible.builtin.set_fact:
pkgconfig.go: "{{ _go | ansible.builtin.combine(pkgconfig.go) }}"
- ansible.builtin.include_vars:
file: hashicorp_repo.yml
name: _hashicorp_repo
- ansible.builtin.set_fact:
pkgconfig.hashicorp_repo: "{{ _hashicorp_repo | ansible.builtin.combine(pkgconfig.hashicorp_repo) }}"
- ansible.builtin.include_vars:
file: kitty.yml
name: _kitty
- ansible.builtin.set_fact:
pkgconfig.kitty: "{{ _kitty | ansible.builtin.combine(pkgconfig.kitty) }}"
- ansible.builtin.include_vars:
file: neovide.yml
name: _neovide
- ansible.builtin.set_fact:
pkgconfig.neovide: "{{ _neovide | ansible.builtin.combine(pkgconfig.neovide) }}"
- ansible.builtin.include_vars:
file: neovim.yml
name: _neovim
- ansible.builtin.set_fact:
pkgconfig.neovim: "{{ _neovim | ansible.builtin.combine(pkgconfig.neovim) }}"
- ansible.builtin.include_vars:
file: nerdfonts.yml
name: _nerdfonts
- ansible.builtin.set_fact:
pkgconfig.nerdfonts: "{{ _nerdfonts | ansible.builtin.combine(pkgconfig.nerdfonts) }}"
- ansible.builtin.include_vars:
file: nodejs.yml
name: _nodejs
- ansible.builtin.set_fact:
pkgconfig.nodejs: "{{ _nodejs | ansible.builtin.combine(pkgconfig.nodejs) }}"
- ansible.builtin.include_vars:
file: nomad.yml
name: _nomad
- ansible.builtin.set_fact:
pkgconfig.nomad: "{{ _nomad | ansible.builtin.combine(pkgconfig.nomad) }}"
- ansible.builtin.include_vars:
file: nushell.yml
name: _nushell
- ansible.builtin.set_fact:
pkgconfig.nushell: "{{ _nushell | ansible.builtin.combine(pkgconfig.nushell) }}"
- ansible.builtin.include_vars:
file: packer.yml
name: _packer
- ansible.builtin.set_fact:
pkgconfig.packer: "{{ _packer | ansible.builtin.combine(pkgconfig.packer) }}"
- ansible.builtin.include_vars:
file: python3.yml
name: _python3
- ansible.builtin.set_fact:
pkgconfig.python3: "{{ _python3 | ansible.builtin.combine(pkgconfig.python3) }}"
- ansible.builtin.include_vars:
file: rust.yml
name: _rust
- ansible.builtin.set_fact:
pkgconfig.rust: "{{ _rust | ansible.builtin.combine(pkgconfig.rust) }}"
- ansible.builtin.include_vars:
file: terraform.yml
name: _terraform
- ansible.builtin.set_fact:
pkgconfig.terraform: "{{ _terraform | ansible.builtin.combine(pkgconfig.terraform) }}"
- ansible.builtin.include_vars:
file: terrarepo.yml
name: _terrarepo
- ansible.builtin.set_fact:
pkgconfig.terrarepo: "{{ _terrarepo | ansible.builtin.combine(pkgconfig.terrarepo) }}"
- ansible.builtin.include_vars:
file: tidy.yml
name: _tidy
- ansible.builtin.set_fact:
pkgconfig.tidy: "{{ _tidy | ansible.builtin.combine(pkgconfig.tidy) }}"
- ansible.builtin.include_vars:
file: zfs.yml
name: _zfs
- ansible.builtin.set_fact:
pkgconfig.zfs: "{{ _zfs | ansible.builtin.combine(pkgconfig.zfs) }}"
- ansible.builtin.include_vars:
file: zig.yml
name: _zig
- ansible.builtin.set_fact:
pkgconfig.zig: "{{ _zig | ansible.builtin.combine(pkgconfig.zig) }}"

View File

@@ -1,7 +1,9 @@
--- ---
version: 0.15.0 version: 0.15.0
RedHat:
# variables that aren't really configuration
build_deps: build_deps:
RedHat:
- cmake - cmake
- freetype-devel - freetype-devel
- fontconfig-devel - fontconfig-devel
@@ -9,7 +11,6 @@ RedHat:
- libxkbcommon-devel - libxkbcommon-devel
- g++ - g++
Debian: Debian:
build_deps:
- cmake - cmake
- pkg-config - pkg-config
- libfreetype6-dev - libfreetype6-dev

View File

@@ -1,8 +1,8 @@
--- ---
version: 1.1.1 version: 1.1.1
Linux:
pkgs: pkgs:
Linux:
- carapace-bin - carapace-bin
Darwin: Darwin:
pkgs:
- carapace - carapace

View File

@@ -1,5 +0,0 @@
---
Linux:
pkg: consul
Darwin:
pkg: hashicorp/tap/consul

View File

@@ -1,11 +1,10 @@
Darwin:
pkgs: pkgs:
Darwin:
- git - git
- git-delta - git-delta
- git-extras - git-extras
- git-lfs - git-lfs
Linux: Linux:
pkgs:
- git - git
- git-delta - git-delta
- git-email - git-email

View File

@@ -1,13 +1,8 @@
--- ---
version: 1.23.5 version: 1.23.5
install_path: /usr/local install_path: /usr/local
archmap:
arm64: arm64 # checksums by version and ansible_system
aarch64: arm64
x86_64: amd64
extmap:
Darwin: pkg
Linux: tar.gz
1.23.5: 1.23.5:
Darwin: Darwin:
arm64: sha256:f819ed94939e08a5016b9a607ec84ebbde6cb3fe59750c59d97aa300c3fd02df arm64: sha256:f819ed94939e08a5016b9a607ec84ebbde6cb3fe59750c59d97aa300c3fd02df
@@ -15,3 +10,12 @@ extmap:
Linux: Linux:
amd64: sha256:cbcad4a6482107c7c7926df1608106c189417163428200ce357695cc7e01d091 amd64: sha256:cbcad4a6482107c7c7926df1608106c189417163428200ce357695cc7e01d091
arm64: sha256:47c84d332123883653b70da2db7dd57d2a865921ba4724efcdf56b5da7021db0 arm64: sha256:47c84d332123883653b70da2db7dd57d2a865921ba4724efcdf56b5da7021db0
# maps used in variables
archmap:
arm64: arm64
aarch64: arm64
x86_64: amd64
extmap:
Darwin: pkg
Linux: tar.gz

View File

@@ -1,10 +1,10 @@
--- ---
Linux: Linux:
RedHat: RedHat: &redhat
repo: https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo repo: https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
Fedora: Fedora: &fedora
repo: https://rpm.releases.hashicorp.com/fedora/hashicorp.repo repo: https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
Debian: Debian: &debian
repo: "deb [arch={{ ansible_architecture }} signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com {{ ansible_distribution_release }} main" repo: "deb [arch={{ ansible_architecture }} signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com {{ ansible_distribution_release }} main"
consul: consul:
Linux: consul Linux: consul

View File

@@ -1,7 +1,6 @@
Darwin:
pkgs: pkgs:
Darwin:
- kitty - kitty
Linux: Linux:
pkgs:
- kitty - kitty
- kitty-shell-integration - kitty-shell-integration

View File

@@ -1,8 +1,13 @@
# variables used in ansible_role_package # variables used in ansible_role_package
--- ---
assume_missing_is_syspkg: false assume_missing_is_syspkg: true
full_upgrade: false full_upgrade: false
install_state: present install_state: present
default_confg:
install_prefix: /usr/local
become: true
owner: root
group: root
# install lists # install lists
brewtaps: [] brewtaps: []
@@ -16,14 +21,17 @@ srcpkgs: []
syspkgs: [] syspkgs: []
tappkgs: [] tappkgs: []
# namespaced package variables # pkgconfig, loaded from .yml files in vars
# and combined. Configuration can be changed
# when running the role by specifying
# pkgconfig.<pkgname> as a dict
pkgconfig: pkgconfig:
alacritty: {} alacritty: {}
carapace: {} carapace: {}
consul: {} consul: {}
git: {} git: {}
go: {} go: {}
hashicorp_repo: {} hashicorp: {}
kitty: {} kitty: {}
neovide: {} neovide: {}
neovim: {} neovim: {}

View File

@@ -1,9 +1,13 @@
--- ---
version: 0.14.0 version: 0.14.0
install_prefix: /usr/local install_prefix: /usr/local
RedHat:
#required variables
git_repo: https://github.com/neovide/neovide.git
local_deps:
- rust
pkgdeps: pkgdeps:
- cargo RedHat:
- fontconfig-devel - fontconfig-devel
- freetype-devel - freetype-devel
- libX11-xcb - libX11-xcb
@@ -13,8 +17,6 @@ RedHat:
- "@Development Tools" - "@Development Tools"
- "@Development Libraries" - "@Development Libraries"
Debian: Debian:
pkgdeps:
- cargo
- fontconfig-devel - fontconfig-devel
- freetype-devel - freetype-devel
- libX11-xcb - libX11-xcb

View File

@@ -1,8 +1,12 @@
--- ---
version: latest version: v0.10.3
install_prefix: /usr/local install_prefix: /usr/local
install_dir: /opt/nvim install_dir: /opt/nvim
Linux: use_appimage: true
appimage: use_syspkg: true
dl: https://github.com/neovim/neovim/releases/latest/download/nvim.appimage build_type: Release
checksum: https://github.com/neovim/neovim/releases/download/latest/nvim.appimage.sha256sum become: true
git_repo: https://github.com/neovim/neovim
appimage_url_pfx: https://github.com/neovim/neovim/releases/download
owner: root
group: root

View File

@@ -1,15 +1,148 @@
--- ---
install:
- CascadiaCode
- FiraCode
- Hasklig
- Lilex
- Monoid
- NerdFontsSymbolsOnly
system_install: false
#mapping of fonts
fonts: fonts:
- name: CascadiaCode 0xProto:
brew: caskaydia-cove brew: font-0xproto-nerd-font
- name: FiraCode "3270":
brew: fira-code brew: font-3270-nerd-font
- name: Hasklig Agave:
brew: font-agave-nerd-font
AnonymousPro:
brew: font-anonymice-nerd-font
Arimo:
brew: font-arimo-nerd-font
AurulentSansMono:
brew: font-aurulent-sans-mono-nerd-font
BigBlueTerminal:
brew: font-bigblue-terminal-nerd-font
BitstreamVeraSansMono:
brew: font-bitstream-vera-sans-mono-nerd-font
IBMPlexMono:
brew: font-blex-mono-nerd-font
CascadiaCode:
brew: font-caskaydia-cove-nerd-font
CascadiaMono:
brew: font-caskaydia-mono-nerd-font
CodeNewRoman:
brew: font-code-new-roman-nerd-font
ComicShannsMono:
brew: font-comic-shanns-mono-nerd-font
CommitMono:
brew: font-commit-mono-nerd-font
Cousine:
brew: font-cousine-nerd-font
D2Coding:
brew: font-d2coding-nerd-font
DaddyTimeMono:
brew: font-daddy-time-mono-nerd-font
DejaVuSansMono:
brew: font-dejavu-sans-mono-nerd-font
DepartureMono:
brew: font-departure-mono-nerd-font
DroidSansMono:
brew: font-droid-sans-mono-nerd-font
EnvyCodeR:
brew: font-envy-code-r-nerd-font
FantasqueSansMono:
brew: font-fantasque-sans-mono-nerd-font
FiraCode:
brew: font-fira-code-nerd-font
FiraMono:
brew: font-fira-mono-nerd-font
GeistMono:
brew: font-geist-mono-nerd-font
Go-Mono:
brew: font-go-mono-nerd-font
Gohu:
brew: font-gohufont-nerd-font
Hack:
brew: font-hack-nerd-font
Hasklig:
brew: hasklug brew: hasklug
- name: Lilex HeavyData:
brew: lilex brew: font-heavy-data-nerd-font
- name: Monoid Hermit:
brew: monoid brew: font-hurmit-nerd-font
- name: NerdFontsSymbolsOnly IA-Writer:
brew: font-im-writing-nerd-font
InconsolataGo:
brew: font-inconsolata-go-nerd-font
InconsolataLGC:
brew: font-inconsolata-lgc-nerd-font
Inconsolata:
brew: font-inconsolata-nerd-font
IntelOneMono:
brew: font-intone-mono-nerd-font
Iosevka:
brew: font-iosevka-nerd-font
IosevkaTerm:
brew: font-iosevka-term-nerd-font
IosevkaTermSlab:
brew: font-iosevka-term-slab-nerd-font
JetBrainsMono:
brew: font-jetbrains-mono-nerd-font
Lekton:
brew: font-lekton-nerd-font
LiberationMono:
brew: font-liberation-nerd-font
Lilex:
brew: font-lilex-nerd-font
MPlus:
brew: font-m+-nerd-font
MartianMono:
brew: font-martian-mono-nerd-font
Meslo:
brew: font-meslo-lg-nerd-font
Monaspace:
brew: font-monaspace-nerd-font
Monofur:
brew: font-monofur-nerd-font
Mononoki:
brew: font-mononoki-nerd-font
Monoid:
brew: font-monoid-nerd-font
NerdFontsSymbolsOnly:
brew: symbols-only brew: symbols-only
nerdfonts_system_install: false Noto:
brew: font-noto-nerd-font
OpenDyslexic:
brew: font-open-dyslexic-nerd-font
Overpass:
brew: font-overpass-nerd-font
ProFont:
brew: font-profont-nerd-font
ProggyClean:
brew: font-proggy-clean-tt-nerd-font
Recursive:
brew: font-recursive-mono-nerd-font
RobotoMono:
brew: font-roboto-mono-nerd-font
SourceCodePro:
brew: font-sauce-code-pro-nerd-font
ShareTechMono:
brew: font-shure-tech-mono-nerd-font
SpaceMono:
brew: font-space-mono-nerd-font
Terminus:
brew: font-terminess-ttf-nerd-font
Tinos:
brew: font-tinos-nerd-font
UbuntuMono:
brew: font-ubuntu-mono-nerd-font
Ubuntu:
brew: font-ubuntu-nerd-font
UbuntuSans:
brew: font-ubuntu-sans-nerd-font
VictorMono:
brew: font-victor-mono-nerd-font
ZedMono:
brew: font-zed-mono-nerd-font

View File

@@ -1,7 +1,7 @@
Darwin: rustup_managed: false
pkgs: pkgs:
Darwin:
- rust - rust
Linux: Linux:
pkgs:
- rustc - rustc
- cargo - cargo