* Do not re=download release files.
* Efficiently handle dependencies: do not try to download \*.deb files when they already downloaded, do not try to extract them more than one time.
package_uploader.sh should not exit on error when package processing is not finished
by allowing to do as much as possible.
But we need some mechanizm to notify maintainers when errors occurred on CI/CD
on package operations.
Prevents messages like this one:
which: no msgfmt in (/home/xeffyr/bin:/run/wrappers/bin:/home/xeffyr/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/etc/profiles/per-user/xeffyr/bin)
* A bit of refactoring.
* Cleanup mode - remove old package versions and keep only latest one on the remote.
* Metadata regeneration mode. Allows to regenerate metadata without package uploading.
* No script failure when package errored. Just show message and continue.
* Do not leave repository in inconsistent state when terminating uploader with ctrl-c.
* Prevent processing of the duplicated package names in arguments. Argument list will be also sorted.
* Compact informational messages.
It seems that metadata generation take about 40 seconds.
If we submit a new version of package with deleting previous one, users
will observe 404 errors until new metadata will be published.
If previous build create metadata generation job, the repository will be left in
unsigned state for up to 5-20 seconds. We cannot do anything with this as how
Bintray works. When this case happens, signature checks will fail causing build
failure.
See https://gitlab.com/termux-mirror/termux-packages/-/jobs/175356747.
For now, gpg checks are permanently disabled. When a better solution will be
found, feel free to revert this commit.