lot's of standardizing with the refacto

This commit is contained in:
Matthew Stobbs
2025-02-11 22:14:04 -07:00
parent 6d52cc6a4d
commit 9250145116
10 changed files with 384 additions and 209 deletions

View File

@@ -1,4 +1,13 @@
# vim: set filetype=yaml.ansible :
---
version: 0.15.0
install_prefix: "{{ default_install_prefix }}"
- name: Set alacritty configuration
ansible.builtin.set_fact:
alacritty:
deps: "{{ pkgconfig.alacritty[ansible_os_family].build_deps }}"
ver: "{{ pkgconfig.alacritty.version }}"
repo: "{{ pkgconfig.alacritty.git_repo }}"
pkgs: "{{ pkgconfig.alacritty[ansible_os_family].pkgs | default(omit) }}"
bin: "{{ paths.install }}/bin/alacritty"
cargo:
locked: true
pkg: alacritty

View File

@@ -1,35 +1,56 @@
# vim: set filetype=yaml.ansible :
---
# create all the facts used throughout the role, but shouldn't be touched
# by the user
- 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
app_images: [] # app_images to install
cargo_pkgs: [] # rust packages from cargo
cask_pkgs: [] # homebrew casks
flatpaks: [] # flatpaks
go_pkgs: [] # go applications
npm_pkgs: [] # npm commands
pipx_pkgs: [] # pipx packages
src_pkgs: [] # packages built from source
sys_pkgs: [] # system package manager packages
tap_pkgs: [] # homebrew tap packages
brew_taps: [] # homebrew taps
flatpak_remotes: # flatpak remotes, includes flathub by default
- name: flathub
url: https://dl.flathub.org/repo/flathub.flatpakrepo
- name: Set facts based on use_local == true
when:
- use_local
ansible.builtin.set_fact:
paths: "{{ local_paths }}"
flatpak_method: user
- name: Set facts based on use_local == false
when:
- not use_local
ansible.builtin.set_fact:
paths: "{{ sys_paths }}"
flatpak_method: system
- name: Set macOS specific facts
when:
- ansible_distribution == 'MacOSX'
ansible.builtin.set_fact:
pipx_exec: /opt/homebrew/bin/pipx
- name: Determine OS and set facts for it
block:
- name: Set macOS facts
when: ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
syspkg_become: false
sys_pkg_become: false
- name: Set Linux facts
when: ansible_system == 'Linux'
ansible.builtin.set_fact:
syspkg_become: true
sys_pkg_become: true
- name: Generate package installation lists
ansible.builtin.include_tasks:
@@ -38,10 +59,10 @@
loop_control:
loop_var: pkg
- name: Install syspkgs list
become: "{{ syspkg_become }}"
- name: Install sys_pkgs list
become: "{{ sys_pkg_become }}"
ansible.builtin.package:
name: "{{ syspkgs | unique }}"
name: "{{ sys_pkgs | unique }}"
state: present
- name: Redhat based OS
@@ -50,9 +71,9 @@
- name: Install dnf packages
become: true
when:
- syspkgs|length > 0
- sys_pkgs|length > 0
ansible.builtin.dnf:
name: "{{ syspkgs | unique }}"
name: "{{ sys_pkgs | unique }}"
state: present
- name: Debian based OS
@@ -60,11 +81,11 @@
block:
- name: Install apt packages
ansible.builtin.apt:
name: "{{ syspkgs | unique }}"
name: "{{ sys_pkgs | unique }}"
state: "{{ install_state }}"
become: true
when:
- syspkgs|length > 0
- sys_pkgs|length > 0
- name: Darwin/macOS based OS
when: ansible_os_family == 'Darwin'
@@ -77,62 +98,62 @@
- name: Tap homebrew taps
community.general.homebrew_tap:
name: "{{ brewtaps | unique }}"
name: "{{ brew_taps | unique }}"
state: present
when: brewtaps|length > 0
when: brew_taps|length > 0
- name: Install homebrew packages
community.general.homebrew:
name: "{{ syspkgs | unique }}"
name: "{{ sys_pkgs | unique }}"
state: "{{ install_state }}"
when: syspkgs|length > 0
when: sys_pkgs|length > 0
- name: Install homebrew casks
community.general.homebrew_cask:
name: "{{ caskpkgs | unique }}"
name: "{{ cask_pkgs | unique }}"
state: "{{ install_state }}"
when: caskpkgs|length > 0
when: cask_pkgs|length > 0
- name: Workaround to install homebrew taps
ansible.builtin.command:
cmd: "brew install {{ tappkg }}"
loop: "{{ tappkgs | unique }}"
cmd: "brew install {{ tap_pkg }}"
loop: "{{ tap_pkgs | unique }}"
loop_control:
loop_var: tappkg
loop_var: tap_pkg
# TODO: fix the need to have this workaround
- name: Install flatpaks on Linux Systems
when:
- ansible_system == 'Linux'
- flatpkgs|length > 0
- flatpaks|length > 0
block:
- name: Add flatpak repos
become: true
loop: "{{ fpremotes | unique }}"
when:
- flatpak_remotes|length > 0
- flatpaks|length > 0
become: "{{ not use_local }}"
loop: "{{ flatpak_remotes | unique }}"
loop_control:
loop_var: remote
when:
- fpremotes|length > 0
- flatpkgs|length > 0
community.general.flatpak_remote:
enabled: true
method: system
method: "{{ flatpak_method }}"
state: present
flatpakrepo_url: "{{ remote.url }}"
name: "{{ remote.name }}"
- name: Install flatpaks
become: true
loop: "{{ flatpkgs | unique }}"
loop: "{{ flatpaks | unique }}"
loop_control:
loop_var: flatpkg
loop_var: flatpak
when:
- flatpkgs|length > 0
- flatpaks|length > 0
community.general.flatpak:
state: latest
method: system
name: "{{ flatpkg.name }}"
remote: "{{ flatpkg.remote | default('flathub') }}"
method: "{{ flatpak_method }}"
name: "{{ flatpak.name }}"
remote: "{{ flatpak.remote | default('flathub') }}"
- name: Ensure /usr/local/bin exists
ansible.builtin.file:
@@ -142,64 +163,56 @@
mode: '0755'
become: true
- name: Install srcpkgs
- name: Install src_pkgs
ansible.builtin.include_tasks:
file: "src/{{ srcpkg }}.yml"
loop: "{{ srcpkgs | unique }}"
file: "src/{{ src_pkg }}.yml"
loop: "{{ src_pkgs | unique }}"
loop_control:
loop_var: srcpkg
when: srcpkgs|length > 0
loop_var: src_pkg
when: src_pkgs|length > 0
- name: Install cargo packages at specific version
community.general.cargo:
name: "{{ cargopkg.name }}"
version: "{{ cargopkg.version }}"
path: "{{ cargopkg.path | default(default_install_prefix) }}"
locked: "{{ cargopkg.locked | default(false) }}"
become: true
when: cargoversioned|length > 0
loop: "{{ cargoversioned | unique }}"
when:
- cargo_pkgs|length > 0
become: "{{ not use_local }}"
loop: "{{ cargo_pkgs | unique }}"
loop_control:
loop_var: cargopkg
- name: Install cargo packages at latest version
loop_var: cargo_pkg
community.general.cargo:
name: "{{ cargopkg }}"
state: latest
locked: "{{ cargopkg.locked | default(false) }}"
when: cargopkgs|length > 0
loop: "{{ cargopkgs | unique }}"
loop_control:
loop_var: cargopkg
name: "{{ cargo_pkg.cargo.pkg }}"
version: "{{ cargo_pkg.ver }}"
path: "{{ paths.cargo }}"
locked: "{{ cargo_pkg.cargo.locked }}"
- name: Install local go packages
loop: "{{ gopkgs | unique }}"
when:
- go_pkgs|length > 0
loop: "{{ go_pkgs | unique }}"
loop_control:
loop_var: gopkg
when: gopkgs|length > 0
loop_var: go_pkg
environment:
GOROOT: /usr/local/go
PATH: /usr/local/go/bin:$PATH
GOROOT: "{{ paths.install }}/go"
PATH: "{{ paths.install }}/go/bin:$PATH"
ansible.builtin.command:
cmd: "go install {{ gopkg }}"
#TODO: figure out how to check if the gopkg is already installed
cmd: "go install {{ go_pkg }}"
# TODO: figure out how to check if the go_pkg is already installed
- name: Install local npm packages
loop: "{{ npmpkgs | unique }}"
loop: "{{ npm_pkgs | unique }}"
loop_control:
loop_var: npmpkg
when: npmpkgs|length > 0
loop_var: npm_pkg
when: npm_pkgs|length > 0
community.general.npm:
global: true
name: "{{ npmpkg }}"
name: "{{ npm_pkg }}"
state: latest
- name: Install python pipx packages for user
loop: "{{ pipxpkgs | unique }}"
loop: "{{ pipx_pkgs | unique }}"
loop_control:
loop_var: pipxpkg
when: pipxpkgs|length > 0
loop_var: pipx_pkg
when: pipx_pkgs|length > 0
community.general.pipx:
executable: "{% if ansible_os_family == 'Darwin' %}/opt/homebrew/bin/pipx{% else %}/usr/bin/pipx{% endif %}"
name: "{{ pipxpkg }}"
executable: "{{ pipx_exec }}"
name: "{{ pipx_pkg }}"
state: latest

View File

@@ -1,25 +1,19 @@
# vim: set filetype=yaml.ansible :
---
- 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
- name: Linux based installation
when: ansible_system == 'Linux'
block:
- name: install rust and cargo
- name: Install rust and cargo
ansible.builtin.include_tasks:
file: "pkgs/rust.yml"
when: pkgconfig_rust is undefined
- name: append to pkgs
set_fact:
syspkgs: "{{ syspkgs + pkgconfig_alacritty.deps[ansible_distribution] }}"
srcpkgs: "{{ srcpkgs + [ 'alacritty' ] }}"
- name: Append to pkgs
ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + alacritty.deps }}"
srcpkgs: "{{ cargopkgs + [alacritty] }}"
- name: append alacritty to caskpkgs
- name: Append alacritty to caskpkgs
ansible.builtin.set_fact:
caskpkgs: "{{ caskpkgs + [ 'alacritty' ] }}"
caskpkgs: "{{ caskpkgs + alacritty.pkgs }}"
when: ansible_system == 'Darwin'

View File

@@ -1,15 +1,7 @@
# vim: set filetype=yaml.ansible :
---
- name: Build and install alacritty
become: true
become: "{{ not use_local }}"
ansible.builtin.command:
creates: "{{ pkgconfig_alacritty.install_prefix }}/bin/alacritty"
cmd:
- cargo
- install
- --root
- "{{ pkgconfig_alacritty.install_prefix }}"
- --git
- "{{ pkgconfig_alacritty.git_repo }}"
- --tag
- "v{{ pkgconfig_alacritty.version }}"
creates: "{{ alacritty.bin }}"
cmd: "cargo install --root {{ paths.cargo }} alacritty@{{ alacritty.ver }}"