Make packages.yml flat

This commit is contained in:
2024-05-08 11:52:10 +02:00
parent 679ddf22d6
commit f4228630b0
3 changed files with 461 additions and 464 deletions

View File

@@ -1,40 +1,39 @@
packages: kernel:
kernel:
archlinux: archlinux:
- linux-zen - linux-zen
- linux-zen-headers - linux-zen-headers
- linux-zen-docs - linux-zen-docs
- linux-firmware - linux-firmware
grub: grub:
archlinux: archlinux:
- grub - grub
- efibootmgr - efibootmgr
lvm: lvm:
archlinux: archlinux:
- lvm2 - lvm2
build-essentials: build-essentials:
archlinux: archlinux:
- gcc - gcc
- ctags - ctags
- cmake - cmake
- maven - maven
- base-devel - base-devel
posix: posix:
archlinux: archlinux:
- posix - posix
make: make:
archlinux: ["make"] archlinux: ["make"]
gdb: gdb:
archlinux: ["gdb"] archlinux: ["gdb"]
strace: strace:
archlinux: ["strace"] archlinux: ["strace"]
sudo: sudo:
archlinux: ["sudo"] archlinux: ["sudo"]
doas: doas:
archlinux: ["opendoas"] archlinux: ["opendoas"]
apt: apt:
archlinux: ["apt"] archlinux: ["apt"]
xorg: xorg:
archlinux: archlinux:
- xorg-server - xorg-server
- xorg-xrandr - xorg-xrandr
@@ -44,152 +43,152 @@ packages:
- xorg-xprop - xorg-xprop
- xorg-xset - xorg-xset
- xorg-xinit - xorg-xinit
dmenu: dmenu:
archlinux: ["dmenu"] archlinux: ["dmenu"]
ansible: ansible:
archlinux: archlinux:
- ansible - ansible
- ansible-language-server - ansible-language-server
- python-jmespath - python-jmespath
xdotool: xdotool:
archlinux: ["xdotool"] archlinux: ["xdotool"]
arandr: arandr:
archlinux: ["arandr"] archlinux: ["arandr"]
docker: docker:
archlinux: ["docker", "docker-compose"] archlinux: ["docker", "docker-compose"]
font-awesome: font-awesome:
archlinux: ["ttf-font-awesome", "otf-font-awesome"] archlinux: ["ttf-font-awesome", "otf-font-awesome"]
font-inconsolata: font-inconsolata:
archlinux: ["ttf-inconsolata"] archlinux: ["ttf-inconsolata"]
font-dejavu: font-dejavu:
archlinux: ["ttf-dejavu"] archlinux: ["ttf-dejavu"]
font-libertine: font-libertine:
archlinux: ["ttf-linux-libertine"] archlinux: ["ttf-linux-libertine"]
font-emoji: font-emoji:
archlinux: ["noto-fonts-emoji"] archlinux: ["noto-fonts-emoji"]
fonts: fonts:
archlinux: archlinux:
- noto-fonts - noto-fonts
- noto-fonts-extra - noto-fonts-extra
- noto-fonts-cjk - noto-fonts-cjk
git: git:
# tk required for gitk # tk required for gitk
archlinux: ["git", "tk", "git-delta", "git-filter-repo"] archlinux: ["git", "tk", "git-delta", "git-filter-repo"]
htop: htop:
archlinux: ["htop"] archlinux: ["htop"]
feh: feh:
archlinux: ["feh"] archlinux: ["feh"]
i3: i3:
archlinux: archlinux:
- i3-wm - i3-wm
- i3status-rust - i3status-rust
i3lock: i3lock:
archlinux: ["i3lock"] archlinux: ["i3lock"]
pluma: pluma:
archlinux: ["pluma"] archlinux: ["pluma"]
neovim: neovim:
archlinux: ["neovim", "python-pynvim"] archlinux: ["neovim", "python-pynvim"]
vim: vim:
archlinux: ["vim"] archlinux: ["vim"]
network-manager-applet: network-manager-applet:
archlinux: ["network-manager-applet"] archlinux: ["network-manager-applet"]
pasystray: pasystray:
archlinux: ["pasystray"] archlinux: ["pasystray"]
redshift: redshift:
archlinux: ["redshift"] archlinux: ["redshift"]
pavucontrol: pavucontrol:
archlinux: ["pavucontrol-qt"] archlinux: ["pavucontrol-qt"]
pinentry-qt: pinentry-qt:
archlinux: ["pinentry"] archlinux: ["pinentry"]
pinta: pinta:
archlinux: ["pinta"] archlinux: ["pinta"]
pass: pass:
archlinux: ["pass", "passff-host", "xclip"] archlinux: ["pass", "passff-host", "xclip"]
urxvt: urxvt:
archlinux: ["rxvt-unicode"] archlinux: ["rxvt-unicode"]
alacritty: alacritty:
archlinux: ["alacritty"] archlinux: ["alacritty"]
tmux: tmux:
archlinux: ["tmux"] archlinux: ["tmux"]
zsh: zsh:
archlinux: ["zsh", "zsh-syntax-highlighting", "zsh-completions"] archlinux: ["zsh", "zsh-syntax-highlighting", "zsh-completions"]
zathura: zathura:
archlinux: ["zathura", "zathura-pdf-poppler"] archlinux: ["zathura", "zathura-pdf-poppler"]
pdf: pdf:
archlinux: ["ghostscript", "enscript"] archlinux: ["ghostscript", "enscript"]
pandoc: pandoc:
archlinux: ["pandoc-cli", "texlive-basic", "texlive-fontsextra", "texlive-latexextra"] archlinux: ["pandoc-cli", "texlive-basic", "texlive-fontsextra", "texlive-latexextra"]
libvirt: libvirt:
archlinux: ["virt-manager", "libvirt", "dnsmasq", "iptables-nft", "dmidecode", "virt-install", "virt-viewer", "libguestfs", "edk2-ovmf"] archlinux: ["virt-manager", "libvirt", "dnsmasq", "iptables-nft", "dmidecode", "virt-install", "virt-viewer", "libguestfs", "edk2-ovmf"]
firefox: firefox:
archlinux: ["firefox"] archlinux: ["firefox"]
ranger: ranger:
archlinux: ["ranger"] archlinux: ["ranger"]
thunar: thunar:
archlinux: ["thunar"] archlinux: ["thunar"]
unclutter: unclutter:
archlinux: ["unclutter"] archlinux: ["unclutter"]
libreoffice: libreoffice:
archlinux: ["libreoffice-fresh", "libreoffice-fresh-de"] archlinux: ["libreoffice-fresh", "libreoffice-fresh-de"]
qt-theming: qt-theming:
archlinux: ["breeze", "breeze-icons", "breeze-grub", "qt5ct"] archlinux: ["breeze", "breeze-icons", "breeze-grub", "qt5ct"]
gtk-theming: gtk-theming:
archlinux: ["breeze-gtk", "lxappearance"] archlinux: ["breeze-gtk", "lxappearance"]
xcompmgr: xcompmgr:
archlinux: ["xcompmgr"] archlinux: ["xcompmgr"]
python: python:
archlinux: archlinux:
- python - python
- python-lsp-server - python-lsp-server
- bandit - bandit
- python-pyflakes - python-pyflakes
- python-pylint - python-pylint
python-modules: python-modules:
archlinux: archlinux:
- python-ruamel-yaml - python-ruamel-yaml
- python-gitpython - python-gitpython
- python-semver - python-semver
black: black:
archlinux: ["python-black"] archlinux: ["python-black"]
xbacklight: xbacklight:
archlinux: ["acpilight"] archlinux: ["acpilight"]
wireshark: wireshark:
archlinux: ["wireshark-cli", "wireshark-qt"] archlinux: ["wireshark-cli", "wireshark-qt"]
nmap: nmap:
archlinux: ["nmap"] archlinux: ["nmap"]
curl: curl:
archlinux: ["curl"] archlinux: ["curl"]
wget: wget:
archlinux: ["wget"] archlinux: ["wget"]
tree: tree:
archlinux: ["tree"] archlinux: ["tree"]
which: which:
archlinux: ["which"] archlinux: ["which"]
zip: zip:
archlinux: ["zip", "unzip"] archlinux: ["zip", "unzip"]
traceroute: traceroute:
archlinux: ["traceroute"] archlinux: ["traceroute"]
tcpdump: tcpdump:
archlinux: ["tcpdump"] archlinux: ["tcpdump"]
tar: tar:
archlinux: ["tar"] archlinux: ["tar"]
rsync: rsync:
archlinux: ["rsync"] archlinux: ["rsync"]
net-tools: net-tools:
archlinux: ["net-tools"] archlinux: ["net-tools"]
ntfs: ntfs:
archlinux: ["ntfs-3g"] archlinux: ["ntfs-3g"]
lsof: lsof:
archlinux: ["lsof"] archlinux: ["lsof"]
iptables: iptables:
archlinux: ["iptables-nft"] archlinux: ["iptables-nft"]
pwgen: pwgen:
archlinux: ["pwgen"] archlinux: ["pwgen"]
gpg: gpg:
archlinux: ["gnupg", "paperkey", "yubikey-manager", "yubikey-touch-detector"] archlinux: ["gnupg", "paperkey", "yubikey-manager", "yubikey-touch-detector"]
networkmanager: networkmanager:
archlinux: ["networkmanager", "capnet-assist"] archlinux: ["networkmanager", "capnet-assist"]
pulseaudio: pulseaudio:
archlinux: archlinux:
- pulseaudio - pulseaudio
- pulseaudio-alsa - pulseaudio-alsa
@@ -198,39 +197,39 @@ packages:
- alsa-firmware - alsa-firmware
- sof-firmware - sof-firmware
- alsa-ucm-conf - alsa-ucm-conf
iw: iw:
archlinux: ["iw"] archlinux: ["iw"]
cowsay: cowsay:
archlinux: ["cowsay"] archlinux: ["cowsay"]
ruby: ruby:
archlinux: ["ruby"] archlinux: ["ruby"]
acpi: acpi:
archlinux: ["acpi", "acpid"] archlinux: ["acpi", "acpid"]
nodejs: nodejs:
archlinux: ["nodejs", "npm"] archlinux: ["nodejs", "npm"]
xdg: xdg:
archlinux: ["xdg-utils"] archlinux: ["xdg-utils"]
dunst: dunst:
archlinux: ["dunst"] archlinux: ["dunst"]
cloc: cloc:
archlinux: ["cloc"] archlinux: ["cloc"]
bwm-ng: bwm-ng:
archlinux: ["bwm-ng"] archlinux: ["bwm-ng"]
virtualbox: virtualbox:
archlinux: ["virtualbox"] archlinux: ["virtualbox"]
ssh: ssh:
archlinux: ["openssh"] archlinux: ["openssh"]
sshfs: sshfs:
archlinux: ["sshfs"] archlinux: ["sshfs"]
expect: expect:
archlinux: ["expect"] archlinux: ["expect"]
inotify: inotify:
archlinux: ["inotify-tools"] archlinux: ["inotify-tools"]
rclone: rclone:
archlinux: ["rclone"] archlinux: ["rclone"]
dnf: dnf:
archlinux: ["dnf"] archlinux: ["dnf"]
rust: rust:
archlinux: archlinux:
- rustup - rustup
- rust-analyzer - rust-analyzer
@@ -239,220 +238,220 @@ packages:
- cargo-watch - cargo-watch
- cargo-release - cargo-release
- cargo-sort - cargo-sort
musescore: musescore:
archlinux: ["musescore"] archlinux: ["musescore"]
sipcalc: sipcalc:
archlinux: ["sipcalc"] archlinux: ["sipcalc"]
rofi: rofi:
archlinux: ["rofi"] archlinux: ["rofi"]
imv: imv:
archlinux: ["imv"] archlinux: ["imv"]
pacman: pacman:
archlinux: ["pacman", "pacman-contrib"] archlinux: ["pacman", "pacman-contrib"]
steam: steam:
archlinux: ["steam"] archlinux: ["steam"]
man: man:
archlinux: ["man-db", "man-pages"] archlinux: ["man-db", "man-pages"]
nextcloud: nextcloud:
archlinux: ["nextcloud-client"] archlinux: ["nextcloud-client"]
kwallet: kwallet:
archlinux: ["kwallet", "kwalletmanager"] archlinux: ["kwallet", "kwalletmanager"]
pv: pv:
archlinux: ["pv"] archlinux: ["pv"]
stress: stress:
archlinux: ["stress"] archlinux: ["stress"]
mpris: mpris:
archlinux: ["playerctl"] archlinux: ["playerctl"]
imagemagick: imagemagick:
archlinux: ["imagemagick"] archlinux: ["imagemagick"]
mpv: mpv:
archlinux: ["mpv"] archlinux: ["mpv"]
gnome-keyring: gnome-keyring:
archlinux: ["gnome-keyring", "seahorse"] archlinux: ["gnome-keyring", "seahorse"]
element: element:
archlinux: ["element-desktop"] archlinux: ["element-desktop"]
maim: maim:
archlinux: ["maim"] archlinux: ["maim"]
mkinitcpio: mkinitcpio:
archlinux: ["mkinitcpio"] archlinux: ["mkinitcpio"]
terraform: terraform:
archlinux: ["terraform"] archlinux: ["terraform"]
synclient: synclient:
archlinux: ["xf86-input-synaptics"] archlinux: ["xf86-input-synaptics"]
ncdu: ncdu:
archlinux: ["ncdu"] archlinux: ["ncdu"]
dust: dust:
archlinux: ["dust"] archlinux: ["dust"]
font-utils: font-utils:
archlinux: ["woff2"] archlinux: ["woff2"]
jq: jq:
archlinux: ["jq"] archlinux: ["jq"]
musl: musl:
archlinux: ["musl"] archlinux: ["musl"]
kdeconnect: kdeconnect:
archlinux: ["kdeconnect"] archlinux: ["kdeconnect"]
restic: restic:
archlinux: ["restic"] archlinux: ["restic"]
discord: discord:
archlinux: ["discord"] archlinux: ["discord"]
kubectl: kubectl:
archlinux: ["kubectl"] archlinux: ["kubectl"]
bind: bind:
archlinux: ["bind"] archlinux: ["bind"]
fzf: fzf:
archlinux: ["fzf"] archlinux: ["fzf"]
chromium: chromium:
archlinux: ["chromium"] archlinux: ["chromium"]
signal: signal:
archlinux: ["signal-desktop"] archlinux: ["signal-desktop"]
go: go:
archlinux: ["go", "gopls", "delve"] archlinux: ["go", "gopls", "delve"]
helix: helix:
archlinux: ["helix"] archlinux: ["helix"]
keepassxc: keepassxc:
archlinux: ["keepassxc"] archlinux: ["keepassxc"]
awscli: awscli:
archlinux: ["aws-cli"] archlinux: ["aws-cli"]
mariadb-client: mariadb-client:
archlinux: ["mariadb-clients"] archlinux: ["mariadb-clients"]
php: php:
archlinux: ["php"] archlinux: ["php"]
exa: exa:
archlinux: ["eza"] archlinux: ["eza"]
just: just:
archlinux: ["just"] archlinux: ["just"]
ripgrep: ripgrep:
archlinux: ["ripgrep"] archlinux: ["ripgrep"]
fd: fd:
archlinux: ["fd"] archlinux: ["fd"]
bat: bat:
archlinux: ["bat"] archlinux: ["bat"]
mdbook: mdbook:
archlinux: ["mdbook"] archlinux: ["mdbook"]
bash: bash:
archlinux: archlinux:
- bash - bash
- bash-language-server - bash-language-server
- shellcheck - shellcheck
- shfmt - shfmt
packer: packer:
archlinux: ["packer"] archlinux: ["packer"]
c: c:
archlinux: archlinux:
- gcc - gcc
- clang - clang
sed: sed:
archlinux: archlinux:
- sed - sed
findutils: findutils:
archlinux: archlinux:
- findutils - findutils
html: html:
archlinux: archlinux:
- vscode-html-languageserver - vscode-html-languageserver
typescript: typescript:
archlinux: archlinux:
- typescript - typescript
- typescript-language-server - typescript-language-server
json: json:
archlinux: archlinux:
- vscode-json-languageserver - vscode-json-languageserver
- gron - gron
markdown: markdown:
archlinux: archlinux:
- marksman - marksman
lldb: lldb:
archlinux: archlinux:
- lldb - lldb
yaml: yaml:
archlinux: archlinux:
- yaml-language-server - yaml-language-server
qemu: qemu:
archlinux: archlinux:
- qemu-full - qemu-full
- tigervnc - tigervnc
cloud-init: cloud-init:
archlinux: archlinux:
- cloud-init - cloud-init
- cloud-utils - cloud-utils
netcat: netcat:
archlinux: archlinux:
- openbsd-netcat - openbsd-netcat
telnet: telnet:
archlinux: archlinux:
- inetutils - inetutils
cloudformation-tools: cloudformation-tools:
archlinux: archlinux:
- python-cfn-lint - python-cfn-lint
johntheripper: johntheripper:
archlinux: archlinux:
- john - john
age: age:
archlinux: archlinux:
- age - age
httpie: httpie:
archlinux: archlinux:
- httpie - httpie
yt-dlp: yt-dlp:
archlinux: archlinux:
- yt-dlp - yt-dlp
ytfzf: ytfzf:
archlinux: archlinux:
- ytfzf - ytfzf
- ueberzug - ueberzug
ffmpeg: ffmpeg:
archlinux: archlinux:
- ffmpeg - ffmpeg
zeal: zeal:
archlinux: archlinux:
- zeal - zeal
kcharselect: kcharselect:
archlinux: archlinux:
- kcharselect - kcharselect
bottom: bottom:
archlinux: archlinux:
- bottom - bottom
# for iotop # for iotop
sysstat: sysstat:
archlinux: archlinux:
- sysstat - sysstat
qrencode: qrencode:
archlinux: archlinux:
- qrencode - qrencode
iotop: iotop:
archlinux: archlinux:
- iotop - iotop
w3m: w3m:
archlinux: archlinux:
- w3m - w3m
ruff: ruff:
archlinux: archlinux:
- ruff - ruff
mold: mold:
archlinux: archlinux:
- clang - clang
- mold - mold
arch-packaging: arch-packaging:
archlinux: archlinux:
- namcap - namcap
- devtools - devtools
- arch-install-scripts - arch-install-scripts
- archiso - archiso
drone: drone:
archlinux: archlinux:
- drone-cli - drone-cli
sqlite: sqlite:
archlinux: archlinux:
- sqlite - sqlite
css: css:
archlinux: archlinux:
- vscode-css-languageserver - vscode-css-languageserver
watchexec: watchexec:
archlinux: archlinux:
- watchexec - watchexec
postgresql: postgresql:
archlinux: archlinux:
- postgresql - postgresql
tokei: tokei:
archlinux: archlinux:
- tokei - tokei

View File

@@ -158,12 +158,10 @@
- name: load package list - name: load package list
include_vars: include_vars:
file: packages.yml file: packages.yml
name: defined_packages
- set_fact: - set_fact:
defined_packages: "{{ packages }}" distro_packages: "{{ defined_packages|json_query('*.%s'|format(distro)) }}"
- set_fact:
distro_packages: "{{ packages|json_query('*.%s'|format(distro)) }}"
- name: check list - name: check list
assert: assert:
@@ -171,7 +169,7 @@
- name: install packages - name: install packages
package: package:
name: "{{ packages|json_query(query) }}" name: "{{ defined_packages|json_query(query) }}"
state: present state: present
become: true become: true
vars: vars:

View File

@@ -19,7 +19,7 @@ packages_to_remove=()
readarray -d $'\0' -t packages_to_remove < <(comm --zero-terminated -13 \ readarray -d $'\0' -t packages_to_remove < <(comm --zero-terminated -13 \
<(cat \ <(cat \
<(<packages.yml yaml2json | jq --raw-output0 '.packages | map(.archlinux) | flatten[]') \ <(<packages.yml yaml2json | jq --raw-output0 'map(.archlinux) | flatten[]') \
<(for dep in "${aurdeps[@]}" ; do printf '%s\0' "${dep}" ; done) \ <(for dep in "${aurdeps[@]}" ; do printf '%s\0' "${dep}" ; done) \
| sort -zu) \ | sort -zu) \
<(pacman -Qq --explicit | xargs -I "{}" printf '%s\0' "{}" | sort -zu) \ <(pacman -Qq --explicit | xargs -I "{}" printf '%s\0' "{}" | sort -zu) \