cassava/repoctl

`repoctl list` is showing packages that are not in the repo

maximbaz opened this issue · 5 comments

Add a package to the repo with repo-add, then remove the package with repo-remove, but leave the cache file in /var/cache/pacman/myrepo folder.

Then repoctl list is still showing this package in its output, although the package is not in the database anymore. I can confirm using aurutils (aur sync --list -d myrepo) that the package is not in the database. I would expect repoctl list to also not show this package.

This was by design at the time.

I'm not sure whether it was a good idea or not. Part of the idea was that I would build packages and they would automatically be put in the repository directory by makepkg. Then repo list would show me which packages are registered with the database as well as which packages are just there. More detailed listings would then let you fine-tune it.

The other caveat is that repo update will just re-add it to the database if you don't remove the cache file.
Not sure how to proceed on this, whether to leave as is, or change it.

Up to you, feel free to close if you want to keep this behavior, I'm happily using aur sync --list 🙂

It really depends on what meaning you want to put into the repoctl list command, should it represent the current state of the database, or should it represent the "potential" state as if you executed repoctl update.

Hey @maximbaz would it make sense for repoctl list to gain -r, --registered and -u, --unregistered flags to pre-filter which packages are shown?

Sounds good, yeah 👍

Decided to leave that -u flag out, since that is out of the scope of what the list command is for. But with -r, it's now possible to only show registered packages. Honestly, don't know why I didn't have this as the default from the very start...