Update package list

Updated package list in preparation for unified package management. For
the moment still uses basic bash script to manage package installation.
Packages are collected in a big list, with some packages being ignored.

This is in preparation for the possibility to manage future package
'groups' directly in pacman meta packages. They will then be added /
removed to the individual PKGBUILD files as dependencies and will
automatically be kept up-to-date, added and removed on all systems which
use the corresponding meta group.

It also opens the path to have commit-time checking of irregularities
between the packages stipulated in the dotfile repository and the
current running system. This can be done by adding all packages of the
different package group lists, unifying them and removing potential
ignored packages.

It allows e.g. printing a warning when committing changes to the
repository while the system packages and the repository packages differ,
to make sure no package dependencies were introduced without knowing it
and which would introduce potential breaking changes into the dotfiles.
This commit is contained in:
Marty Oehme 2020-02-07 22:07:53 +01:00
parent 83728d6fb0
commit c7ed986c0e
No known key found for this signature in database
GPG key ID: 0CCB0526EFB9611A
4 changed files with 58 additions and 38 deletions

View file

@ -7,7 +7,7 @@
# DESCRIPTION: Display usage information for this script. # DESCRIPTION: Display usage information for this script.
# PARAMETERS: see usage function # PARAMETERS: see usage function
#============================================================================== #==============================================================================
packages="${BOOTSTRAP_PACKAGES:-packages.csv}" packages="${BOOTSTRAP_PACKAGES:-packages.txt}"
main() { main() {
local cmd="" local cmd=""

View file

@ -1,91 +1,100 @@
alacritty alacritty
atool
anki anki
bash asciinema
atool
bibtool bibtool
bison bison
bzip2 chromium
dhcpcd dhcpcd
dialog dialog
docker docker
dunst dunst
exa exa
fakeroot
fasd fasd
feh feh
flashfocus-git flashfocus-git
flex
fzf fzf
gawk
git
git-lfs git-lfs
gitlint
glances
glow glow
gnome-keyring gnome-keyring
go
gopass gopass
grep grub
gzip
haveged
htop
hugo hugo
i3blocks
i3-gaps i3-gaps
i3lock i3lock
i3status
iputils
jabref-latest jabref-latest
jpdftweak jpdftweak
keybase-bin keybase-bin
less
libnotify libnotify
libtool licenses
linux-firmware
linux-headers
linux-lts
linux-lts-headers
littler littler
logrotate logrotate
lprng
lvm2
lynx lynx
man-db
man-pages
masterpdfeditor-free
mosh mosh
mpv mpv
nano nano
neovim neovim
nerd-fonts-fira-code nerd-fonts-fira-code
nerd-fonts-iosevka nerd-fonts-iosevka
netctl
networkmanager
nextcloud-client nextcloud-client
ntfs-3g ntfs-3g
ntp ntp
openssh
os-prober os-prober
pacman
pandoc
pandoc-citeproc pandoc-citeproc
pdfjs
pia-tools
picom picom
pkgconf
playerctl playerctl
polybar polybar
powertop psmisc
pulseaudio
pulseaudio-alsa pulseaudio-alsa
pulsemixer pulsemixer
python-pdfminer.six
python-pip python-pip
python-pybtex python-pybtex
python-pynvim python-pynvim
qutebrowser qutebrowser
r
redshift redshift
ripgrep ripgrep-all
rng-tools rng-tools
rofi
rofi-calc rofi-calc
rofi-dmenu rofi-dmenu
rofi-greenclip rofi-greenclip
rofimoji rofimoji
rtv
scrot scrot
sed shellcheck-static
shfmt
spotify
sshfs sshfs
stow stow
surfraw surfraw
sxhkd sxhkd
tar systemd-sysvcompat
texinfo
texlive-bibtexextra texlive-bibtexextra
texlive-core
texlive-fontsextra texlive-fontsextra
texlive-formatsextra texlive-formatsextra
texlive-games texlive-games
texlive-humanities texlive-humanities
texlive-latexextra
texlive-music texlive-music
texlive-pictures texlive-pictures
texlive-pstricks texlive-pstricks
@ -99,24 +108,18 @@ ttf-heuristica
ttf-signika ttf-signika
unclutter unclutter
unrar unrar
unzip usbutils
vagrant vagrant
vi
vifm vifm
virtualbox virtualbox
wget
which
xcape xcape
xclip xclip
xdg-user-dirs xdg-user-dirs
xdotool
xorg-server
xorg-xev xorg-xev
xorg-xinit xorg-xinit
xorg-xinput xorg-xinput
xorg-xrandr
yarn yarn
yay yay
youtube-dl youtube-dl
zathura
zathura-pdf-mupdf zathura-pdf-mupdf
zsh

View file

@ -0,0 +1,11 @@
ansible
autoconf
automake
bash-bats
dosfstools
hplip
nvidia
powertop
qemu
virt-manager
zotero

View file

@ -51,19 +51,25 @@ install() {
fi fi
echo "====================== BEGINNING INSTALLATION =============================" echo "====================== BEGINNING INSTALLATION ============================="
if ! "$unattended"; then if ! "$unattended"; then
export BOOTSTRAP_PACKAGES="bootstrap/packages.csv" export BOOTSTRAP_PACKAGES="_bootstrap/packages.txt"
"$bootstrap_dir"/install_packages.sh "$bootstrap_dir"/install_packages.sh
else else
export BOOTSTRAP_PACKAGES="bootstrap/packages.csv" export BOOTSTRAP_PACKAGES="_bootstrap/packages.txt"
"$bootstrap_dir"/install_packages.sh -f "$bootstrap_dir"/install_packages.sh -f
fi fi
unset BOOTSTRAP_PACKAGES unset BOOTSTRAP_PACKAGES
echo "=================== BEGINNING DOTFILE MANAGEMENT ==========================" echo "=================== BEGINNING DOTFILE MANAGEMENT =========================="
stow -R ./*/ # get all top level directories, remove their slashes and dots
# finally get rid of .dot-directories, since they are for the repo not for my homedir
targets="$(find . -maxdepth 1 -type d | sed -e 's/^\.\/\(.*\)$/\1/' | sed -e '/^\./d')"
# shellcheck disable=2086
# -- for some reason stow only works with unqoted var expansion
stow -R ${targets} 2> >(grep -v 'Absolute/relative mismatch between Stow dir' 1>&2)
echo "====================== INSTALLATION FINISHED ==============================" echo "====================== INSTALLATION FINISHED =============================="
exit 0
} }
main "$@" main "$@"