Split the lists into two, with testing getting automatically updated on
packages added (and removed, but only if the package to be removed is
*not* in stable packages already).
This way, I can always be sure that I have my stable setup in the
repository, but packages that I am temporarily testing have a place
without being forgotten and I can more easily change them around until
they find a place in stable or get thrown out.
Takes simple options -h (show help), -v (verbose), -n (dry-run) when
started.
By default does not spam output of *all* recognized packages anymore but
simply prints a diff at the end. Old output can be enabled with `-v`
verbose option.
Diff is shown even if dry-run mode is enabled so that using dry-run by
default will show you a preview of what changed.
Package list is now a single tab separated list. That should make
several automations in the future much simpler.
The table is built as follows:
`Name Description Source Target`
with one line per package. Source denotes official repositories or AUR,
and target is kept for future potential of creating different
deployments per target automatically (e.g. different package list for
desktop and server, and so on).
There is an updater script `bootstrap/update_package_list.sh` which will
automatically populate the table, removing uninstalled packages, adding
new ones and (making its best attempt to be) keeping the selected
targets as they are.
The git commit hook comparing installed and committed packages has also
been rewritten to use the new table and be a little simpler overall.
Fixes#2.