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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

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
ansible.builtin.command:
cmd: "go version"
@@ -10,15 +6,15 @@
ignore_errors: true
- name: install/update go
when: "'{{ _go.version }}' not in r_go_version.stdout"
when: "'{{ pkgconfig.go.version }}' not in r_go_version.stdout"
block:
- name: set go arch
ansible.builtin.set_fact:
arch: "{{ _go.archmap[ansible_architecture] }}"
arch: "{{ pkgconfig.go.archmap[ansible_architecture] }}"
- name: set go archive filename
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:
- dev
- go
@@ -35,7 +31,7 @@
ansible.builtin.get_url:
dest: "{{ d_go_dl_tmp.path }}/{{ 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
tags:
- dev
@@ -44,12 +40,12 @@
- name: ensure go install dir exists
become: true
ansible.builtin.file:
path: "{{ _go.install_path }}"
path: "{{ pkgconfig.go.install_path }}"
state: directory
- name: extract go package
ansible.builtin.unarchive:
dest: "{{ _go.install_path }}"
dest: "{{ pkgconfig.go.install_path }}"
src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
remote_src: true
when: ansible_system == 'Linux'

View File

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

View File

@@ -1,36 +1,55 @@
- ansible.builtin.include_vars:
file: neovim.yml
name: _neovim
- name: create temp path
ansible.builtin.tempfile:
state: directory
prefix: nvim.
register: d_nvim_tmp
- name: clone neovim git repository
ansible.builtin.git:
depth: 1
dest: "{{ d_nvim_tmp.path }}/neovim"
repo: "{{ _neovim.git_repo }}"
version: "v{{ _neovim.version }}"
- name: build neovim
ansible.builtin.command:
chdir: "{{ d_nvim_tmp.path }}/neovim"
cmd:
- make
- "CMAKE_BUILD_Type={{ _neovim.build_type }}"
- "CMAKE_INSTALL_PREFIX={{ _neovim.install_prefix }}"
---
- name: build neovim from source
block:
- name: create temp path
ansible.builtin.tempfile:
state: directory
prefix: nvim.
register: d_nvim_tmp
- name: clone neovim git repository
ansible.builtin.git:
depth: 1
dest: "{{ d_nvim_tmp.path }}/neovim"
repo: "{{ pkgconfig.neovim.git_repo }}"
version: "{{ pkgconfig.neovim.version }}"
- name: build and install neovim
ansible.builtin.make:
chdir: "{{ d_nvim_tmp.path }}/neovim"
params:
CMAKE_BUILD_TYPE: "{{ pkgconfig.neovim.build_type }}"
CMAKE_INSTALL_PREFIX: "{{ pkgconfig.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
become: true
ansible.builtin.get_url:
url: https://github.com/neovim/neovim/releases/download/v{{ _neovim.version }}/nvim.appimage
dest: /usr/local/bin/nvim
checksum: sha256:6a021e9465fe3d3375e28c3e94c1c2c4f7d1a5a67e4a78cf52d18d77b1471390
tags:
- RedHat
- linux
- package
block:
- ansible.builin.file:
state: directory
mode: "0755"
path: "{{ pkgconfig.neovim.install_dir }}"
owner: "{{ pkgconfig.neovim.owner }}"
group: "{{ pkgconfig.neovim.group }}"
- 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:
file: alacritty.yml
name: _alacritty
- ansible.builtin.set_fact:
pkgconfig.alacritty: "{{ _alacritty | ansible.builtin.combine(pkgconfig.alacritty) }}"
- name: linux based installation
when: ansible_system == 'Linux'
block:
- name: install rust and cargo
ansible.builtin.include_tasks:
file: "pkgs/{{ ansible_os_family }}/rust.yml"
file: "pkgs/rust.yml"
tags:
- rust
- dependency
- name: append to pkgs
set_fact:
syspkgs: "{{ syspkgs + _alacritty[ansible_distribution].build_deps }}"
syspkgs: "{{ syspkgs + pkgconfig.alacritty.build_deps[ansible_distribution] }}"
srcpkgs: "{{ srcpkgs + [ 'alacritty' ] }}"
tags:
- syspkgs

View File

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

View File

@@ -2,6 +2,8 @@
- ansible.builtin.include_vars:
file: carapace.yml
name: _carapace
- ansible.builtin.set_fact:
pkgconfig.carapace: "{{ _carapace | ansible.builtin.combine(pkgconfig.carapace) }}"
- name: enable carapace yum repository
ansible.builtin.yum_repository:
@@ -24,4 +26,4 @@
- name: add carapace to syspkgs
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
ansible.builtin.include_tasks:
file: "pkgs/hashicorp_repo.yml"
- name: append to pkgs
- name: append to syspkgs
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:
file: git.yml
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
set_fact:
syspkgs: "{{ syspkgs + _git[ansible_system].pkgs }}"
tags:
- RedHat
- linux
- package
syspkgs: "{{ syspkgs + pkgconfig.git.pkgs }}"

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
set_fact:
srcpkgs: "{{ srcpkgs + [ 'go' ] }}"

View File

@@ -2,6 +2,8 @@
- ansible.builtin.include_vars:
file: hashicorp_repo.yml
name: _hashicorp
- ansible.builtin.set_fact:
pkgconfig.hashicorp: "{{ _hashicorp | ansible.builtin.combine(pkgonfig.hashicorp) }}"
- name: RedHat repository
when: ansible_os_family == 'RedHat'
@@ -13,7 +15,7 @@
- ansible_distribution_major_version|int >= 41
ansible.builtin.command:
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
become: true
@@ -22,7 +24,7 @@
- ansible_distribution_major_version|int < 41
ansible.builtin.command:
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
become: true
@@ -30,7 +32,7 @@
- ansible_distribution != 'Fedora'
ansible.builtin.command:
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
when: ansible_os_family == 'Debian'
@@ -57,7 +59,7 @@
- name: enable hasicorp repo for debian
ansible.builtin.apt_repository:
repo: "{{ _hashicorp.Linux.Debian.repo }}"
repo: "{{ pkgconfig.hashicorp.Linux.Debian.repo }}"
state: present
update_cache: false

View File

@@ -2,7 +2,9 @@
- ansible.builtin.include_vars:
file: kitty.yml
name: _kitty
- ansible.builtin.set_fact:
pkgconfig.kitty: "{{ _kitty | ansible.builtin.combine(pkgconfig.kitty) }}"
- name: add to syspkgs
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:
file: neovide.yml
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
when: ansible_system == 'Linux'
set_fact:
syspkgs: "{{ syspkgs + _neovide[ansible_os_family].pkgdeps }}"
syspkgs: "{{ syspkgs + pkgconfig.neovide.pkgdeps[ansible_os_family] }}"
srcpkgs: "{{ srcpkgs + [ 'neovide' ] }}"
- name: append neovide to caskpkgs

View File

@@ -2,33 +2,15 @@
- ansible.builtin.include_vars:
file: neovim.yml
name: _neovim
- ansible.builtin.set_fact:
pkgconfig.neovim: "{{ _neovim | ansible.builtin.combine(pkgconfig.neovim) }}"
- name: linux installation
when: ansible_system == 'Linux'
block:
- name: ensure install dir exists
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 srcpkgs
when: not pkgconfig.neovim.use_syspkg
set_fact:
srcpkgs: "{{ srcpkgs + ['neovim'] }}"
- name: append neovim to syspkgs
when: ansible_system == 'Darwin'
when: pkgconfig.neovim.use_syspkg
set_fact:
syspkgs: "{{ syspkgs + ['neovim'] }}"

View File

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

View File

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

View File

@@ -1,5 +1,4 @@
---
- name: append to pkgs
set_fact:
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) }}"