move a lot of configuration around

This commit is contained in:
Matthew Stobbs
2025-02-11 20:22:42 -07:00
parent 275f5df722
commit 6d52cc6a4d
33 changed files with 180 additions and 117 deletions

View File

@@ -3,9 +3,23 @@
- name: "Check if task exists for {{ pkg }}"
ansible.builtin.stat:
path: "{{ role_path }}/tasks/pkgs/{{ pkg }}.yml"
register: cpkg_exists
register: stat_pkg
- name: "Check if specialized configuration exists for {{ pkg }}"
when:
- stat_pkg.exists
ansible.builtin.stat:
path: "{{ role_path }}/tasks/config/{{ pkg }}.yml"
register: stat_config
- name: "Load specialized configuration if it exists for {{ pkg }}"
when:
- stat_config.exists
ansible.builtin.include_tasks:
file: "config/{{ pkg }}.yml"
- name: "Add include task for {{ pkg }}"
when: cpkg_exists.exists
when:
- stat_pkg.exists
ansible.builtin.include_tasks:
file: "pkgs/{{ pkg }}.yml"

View File

@@ -10,7 +10,7 @@
ansible.builtin.file:
state: directory
mode: '0755'
path: "{{ bw_instdir }}"
path: "{{ apimage_pfx }}/bitwarden"
owner: "{{ bw_owner }}"
group: "{{ bw_group }}"
@@ -19,13 +19,13 @@
mode: '0755'
decompress: false
backup: true
url: bw_appimg.url
dest: "{{ bw_instdir }}/{{ bw_appimg.name }}"
url: "{{ bw.appimg.url }}"
dest: "{{ appimage_pfx }}/{{ bw.appimg.name }}"
owner: "{{ bw_owner }}"
group: "{{ bw_group }}"
- name: Link bitwarden appimage
ansible.builtin.file:
state: link
src: "{{ bw_instdir }}/{{ bw_appimg.name }}"
path: "{{ bw_instpfx }}/bin/bitwarden"
src: "{{ appimage_pfx }}/{{ bw.appimg.name }}"
path: "{{ bw.bindir }}/bitwarden"

29
tasks/appimage/neovim.yml Normal file
View File

@@ -0,0 +1,29 @@
# vim: set filetype=yaml.ansible :
---
- name: Install neovim appimage
become: true
block:
- name: Create install dir
ansible.builin.file:
state: directory
mode: "0755"
path: "{{ nvim.instdir }}"
owner: "{{ pkgconfig_neovim.owner }}"
group: "{{ pkgconfig_neovim.group }}"
- name: Get neovim appimage
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 }}"
- name: Link neovim appimage
ansible.builtin.file:
state: link
src: "{{ pkgconfig_neovim.install_dir }}/nvim.appimage.{{ pkgconfig_neovim.version }}"
path: "{{ pkgconfig_neovim.install_prefix }}/bin/nvim"

View File

@@ -1,55 +0,0 @@
# vim: set filetype=yaml.ansible :
---
- 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.dobecome }}"
become_user: "{% if pkgconfig_neovim.dobecome %}{{ pkgconfig_neovim.owner }}{% else %}~{% endif %}"
when: not pkgconfig_neovim.use_appimage
- name: install neovim appimage
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.dobecome }}"
become_user: "{% if pkgconfig_neovim.dobecome %}{{ pkgconfig_neovim.owner }}{% else %}~{% endif %}"

View File

@@ -0,0 +1,4 @@
# vim: set filetype=yaml.ansible :
---
version: 0.15.0
install_prefix: "{{ default_install_prefix }}"

View File

@@ -0,0 +1,7 @@
# vim: set filetype=yaml.ansible :
---
install_prefix: "{{ default_install_prefix }}"
install_method: flatpak
dobecome: true
owner: root
group: root

View File

@@ -0,0 +1,3 @@
# vim: set filetype=yaml.ansible :
---
version: 1.1.1

8
tasks/config/ghostty.yml Normal file
View File

@@ -0,0 +1,8 @@
# vim: set filetype=yaml.ansible :
---
version: v1.0.1
optimize: ReleaseFast
build: false
dobecome: true
owner: root
group: root

4
tasks/config/go.yml Normal file
View File

@@ -0,0 +1,4 @@
# vim: set filetype=yaml.ansible :
---
version: 1.23.6
install_path: "{{ default_install_prefix }}"

View File

@@ -0,0 +1,3 @@
# vim: set filetype=yaml.ansible :
---
use_flatpak: false

View File

@@ -0,0 +1,5 @@
# vim: set filetype=yaml.ansible :
---
version: 3.13.5
install_prefix: "{{ default_install_prefix }}"
install_path: /opt/lua-language-server

4
tasks/config/neovide.yml Normal file
View File

@@ -0,0 +1,4 @@
# vim: set filetype=yaml.ansible :
---
version: 0.14.0
install_prefix: "{{ default_install_prefix }}"

10
tasks/config/neovim.yml Normal file
View File

@@ -0,0 +1,10 @@
# vim: set filetype=yaml.ansible :
---
version: v0.10.3
install_prefix: "{{ default_install_prefix }}"
install_dir: /opt/nvim
install_method: appimage
build_type: Release
dobecome: true
owner: root
group: root

View File

@@ -0,0 +1,10 @@
# vim: set filetype=yaml.ansible :
---
install:
- CascadiaCode
- FiraCode
- Hasklig
- Lilex
- Monoid
- NerdFontsSymbolsOnly
system_install: false

3
tasks/config/nushell.yml Normal file
View File

@@ -0,0 +1,3 @@
# vim: set filetype=yaml.ansible :
---
install_extra: true

3
tasks/config/rust.yml Normal file
View File

@@ -0,0 +1,3 @@
# vim: set filetype=yaml.ansible :
---
rustup_managed: false

5
tasks/config/zig.yml Normal file
View File

@@ -0,0 +1,5 @@
# vim: set filetype=yaml.ansible :
---
version: 0.13.0
install_prefix: "{{ default_install_prefix }}"
install_path: /opt/zig

5
tasks/config/zls.yml Normal file
View File

@@ -0,0 +1,5 @@
# vim: set filetype=yaml.ansible :
---
version: 0.13.0
install_prefix: "{{ default_install_prefix }}"
install_path: /opt/zls

View File

@@ -1,5 +1,24 @@
# vim: set filetype=yaml.ansible :
---
- name: Set installation facts
ansible.builtin.set_fact:
paths: "{% if use_local %}{{ localpaths }}{% else %}{{ syspaths }}{% endif %}"
appimages: [] # appimages to install
cargopkgs: [] # rust packages from cargo
cargoversioned: [] # versioned rust packages from cargo
caskpkgs: [] # homebrew casks
flatpkgs: [] # flatpaks
gopkgs: [] # go applications
npmpkgs: [] # npm commands
pipxpkgs: [] # pipx packages
srcpkgs: [] # packages built from source
syspkgs: [] # system package manager packages
tappkgs: [] # homebrew tap packages
brewtaps: [] # homebrew taps
fpremotes: # flatpak remotes
- name: flathub
url: https://dl.flathub.org/repo/flathub.flatpakrepo
- name: Determine OS and set facts for it
block:
- name: Set macOS facts
@@ -125,7 +144,7 @@
- name: Install srcpkgs
ansible.builtin.include_tasks:
file: "build/{{ srcpkg }}.yml"
file: "src/{{ srcpkg }}.yml"
loop: "{{ srcpkgs | unique }}"
loop_control:
loop_var: srcpkg

View File

@@ -12,14 +12,14 @@
- name: Set bitwarden facts
ansible.builtin.set_fact:
bw:
appimg: pkgconfig_bitwarden.appimage
become: pkgconfig_bitwarden.dobecome
flatpak: pkgconfig_bitwarden.flatpak
group: pkgconfig_bitwarden.group
instdir: pkgconfig_bitwarden.install_dir
instmtd: pkgconfig_bitwarden.install_method
instpfx: pkgconfig_bitwarden.install_prefix
owner: pkgconfig_bitwarden.owner
appimg: "{{ pkgconfig_bitwarden.appimage }}"
become: "{{ pkgconfig_bitwarden.dobecome }}"
flatpak: "{{ pkgconfig_bitwarden.flatpak }}"
group: "{{ pkgconfig_bitwarden.group }}"
instdir: "{{ pkgconfig_bitwarden.install_dir }}"
instmtd: "{{ pkgconfig_bitwarden.install_method }}"
bindir: "{{ pkgconfig_bitwarden.install_prefix }}/bin"
owner: "{{ pkgconfig_bitwarden.owner }}"
- name: Append to flatpkgs
when:

View File

@@ -1,12 +1,14 @@
# vim: set filetype=yaml.ansible :
---
- ansible.builtin.set_fact:
- name: Set hashicorp flag
ansible.builtin.set_fact:
hashicorp: true
- name: RedHat repository
when: ansible_os_family == 'RedHat'
when:
- ansible_os_family == 'RedHat'
block:
- name: enable hashicorp repo for fedora >=41
- name: Enable hashicorp repo for fedora >=41
become: true
when:
- ansible_distribution == 'Fedora'
@@ -15,7 +17,7 @@
creates: /etc/yum.repos.d/hashicorp.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
when:
- ansible_distribution == 'Fedora'
@@ -24,7 +26,7 @@
creates: /etc/yum.repos.d/hashicorp.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
when:
- ansible_distribution != 'Fedora'
@@ -33,21 +35,25 @@
cmd: "dnf config-manager --add-repo {{ pkgconfig.hashicorp.Linux.RedHat.repo }}"
- name: Debian based repository
when: ansible_os_family == 'Debian'
when:
- ansible_os_family == 'Debian'
block:
- ansible.builtin.tempfile:
- name: Create temporary directory
ansible.builtin.tempfile:
state: directory
prefix: hashicorp.
register: d_hashicorp_tmp
- name: get hashicorp archive gpg key
- name: Get hashicorp archive gpg key
ansible.builtin.get_url:
dest: "{{ d_hashicorp_tmp.path }}/gpg"
url: https://apt.releases.hashicorp.com/gpg
mode: '0644'
- name: install hashicorp archive gpg key
- name: Install hashicorp archive gpg key
become: true
ansible.builtin.command:
creates: /usr/share/keyrings/hashicorp-archive-keyring.gpg
cmd:
- gpg
- --dearmor
@@ -55,13 +61,17 @@
- /usr/share/keyrings/hashicorp-archive-keyring.gpg
- "{{ d_hashicorp_tmp.path }}/gpg"
- name: enable hasicorp repo for debian
- name: Enable hasicorp repo for debian
ansible.builtin.apt_repository:
repo: "{{ pkgconfig.hashicorp.Linux.Debian.repo }}"
state: present
update_cache: false
- name: enable hashicorp homebrew tap
when: ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
brewtaps: "{{ brewtaps + ['hashicorp/tap'] }}"
- name: MacOS specific configuration
when:
- ansible_distribution == 'MacOSX'
block:
- name: Enable hashicorp homebrew tap
when: ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
brewtaps: "{{ brewtaps + ['hashicorp/tap'] }}"

View File

@@ -1,17 +1,50 @@
# vim: set filetype=yaml.ansible :
---
- ansible.builtin.include_vars:
- name: Load neovim config
ansible.builtin.include_vars:
file: neovim.yml
name: _neovim
- ansible.builtin.set_fact:
- name: Combine neovim default and user config
ansible.builtin.set_fact:
pkgconfig_neovim: "{{ _neovim | ansible.builtin.combine(pkgconfig.neovim) }}"
- name: append neovim to srcpkgs
- name: Set neovim facts
ansible.builtin.set_fact:
srcpkgs: "{{ srcpkgs + ['neovim'] }}"
when: not pkgconfig_neovim.use_syspkg
nvim:
appimg: "{{ pkgconfig_neovim.appimage }}"
become: "{{ pkgconfig_neovim.dobecome }}"
bldtype: "{{ pkgconfig_neovim.build_type }}"
group: "{{ pkgconfig_neovim.group }}"
instdir: "{{ pkgconfig_neovim.install_dir }}"
instmtd: "{{ pkgconfig_neovim.install_method }}"
instpfx: "{{ pkgconfig_neovim.install_prefix }}"
owner: "{{ pkgconfig_neovim.owner }}"
ver: "{{ pkgconfig_neovim.version }}"
- name: append neovim to syspkgs
- name: Linux specific install
when:
- ansible_system == 'Linux'
block:
# install system package when on an up to date distro
- name: Append to syspkgs
when:
- (ansible_distribution == 'Fedora') or
(ansible_distribution == 'Ubuntu')
- name: Append to appimages
when:
- nvim.instmtd == 'appimage'
ansible.builtin.set_fact:
appimages: "{{ appimages + ['neovim'] }}"
- name: Append neovim to syspkgs
when:
- ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + ['neovim'] }}"
when: pkgconfig_neovim.use_syspkg
- name: Append neovim to srcpkgs
when:
- nvim.instmtd == 'source'
ansible.builtin.set_fact:
srcpkgs: "{{ srcpkgs + ['neovim'] }}"

25
tasks/src/neovim.yml Normal file
View File

@@ -0,0 +1,25 @@
# vim: set filetype=yaml.ansible :
---
- 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.dobecome }}"
become_user: "{% if pkgconfig_neovim.dobecome %}{{ pkgconfig_neovim.owner }}{% else %}~{% endif %}"
when: not pkgconfig_neovim.use_appimage