Drop hardcoded packages to remove

This commit is contained in:
2024-05-06 11:18:23 +02:00
parent 8079f29912
commit 9deaef642f
3 changed files with 454 additions and 493 deletions

View File

@@ -1,473 +1,452 @@
packages: packages:
list: 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 - xorg-xkill
- xorg-xkill - xorg-setxkbmap
- xorg-setxkbmap - xorg-xev
- xorg-xev - 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 - lib32-libpulse
- lib32-libpulse - alsa-utils
- alsa-utils - 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 - cargo-edit
- cargo-edit - cargo-msrv
- cargo-msrv - 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
remove:
mousepad:
archlinux: ["mousepad"]
vim:
archlinux: ["gvim"]
rust:
archlinux: ["rust"]
screen:
archlinux: ["screen"]
lxc:
archlinux: ["lxc"]
autorandr:
archlinux: ["autorandr"]
openvpn:
archlinux: ["openvpn"]
bluetooth:
archlinux: ["bluez", "bluez-tools", "blueman"]
borgbackup:
archlinux: ["borg"]

View File

@@ -165,33 +165,15 @@
become: true become: true
- set_fact: - set_fact:
defined_packages: "{{ packages|json_query('keys(list)') }}" defined_packages: "{{ packages }}"
- set_fact: - set_fact:
distro_packages: "{{ packages|json_query('list.*.%s'|format(distro)) }}" distro_packages: "{{ packages|json_query('*.%s'|format(distro)) }}"
- name: check list - name: check list
assert: assert:
that: "defined_packages|length == distro_packages|length" that: "defined_packages|length == distro_packages|length"
- set_fact:
defined_packages_remove: "{{ packages|json_query('keys(remove)') }}"
- set_fact:
distro_packages_remove: "{{ packages|json_query('remove.*.%s'|format(distro)) }}"
- name: check list
assert:
that: "defined_packages_remove|length == distro_packages_remove|length"
- name: remove packages
package:
name: "{{ packages|json_query(query) }}"
state: absent
become: true
vars:
query: "{{ 'remove.*.%s[]'|format(distro) }}"
- name: install packages - name: install packages
package: package:
name: "{{ packages|json_query(query) }}" name: "{{ packages|json_query(query) }}"

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.list | map(.archlinux) | flatten[]') \ <(<packages.yml yaml2json | jq --raw-output0 '.packages | 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) \