Don't run apt update if it's been run recently (#4135)

When installing or searching for packages, the `apt update` will run only if it
was not executed within the last 5 minutes. Command `pkg upgrade` will
always execute `apt update` to ensure that latest package versions were
picked during upgrade.
This commit is contained in:
Efreak 2019-11-10 14:29:05 +00:00 committed by Leonid Pliushch
parent e4f9eb7467
commit 63733da336
2 changed files with 18 additions and 11 deletions

View File

@ -1,7 +1,7 @@
TERMUX_PKG_HOMEPAGE=https://termux.com/ TERMUX_PKG_HOMEPAGE=https://termux.com/
TERMUX_PKG_DESCRIPTION="Basic system tools for Termux" TERMUX_PKG_DESCRIPTION="Basic system tools for Termux"
TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_VERSION=0.72 TERMUX_PKG_VERSION=0.73
TERMUX_PKG_SKIP_SRC_EXTRACT=true TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_ESSENTIAL=true TERMUX_PKG_ESSENTIAL=true

View File

@ -19,28 +19,35 @@ show_help() {
} }
assert_not_root() { assert_not_root() {
if [ $(id -u) -eq 0 ] if [ $(id -u) -eq 0 ]; then
then echo "This must NOT be run as root as it will break your environment (root will be required for nearly everything due to changed file permissions)"
echo "This must NOT be run as root as it will break your environment (root will be required for nearly everything due to changed file permissions)" exit 1
exit 1 fi
fi
} }
if [ $# = 0 ]; then show_help; fi check_pkgcache() {
if [ -z "$(find @TERMUX_PREFIX@/var/cache/apt/pkgcache.bin -mmin -5)" ]; then
apt update
fi
}
if [ $# = 0 ]; then
show_help
fi
CMD="$1" CMD="$1"
shift 1 shift 1
case "$CMD" in case "$CMD" in
f*) dpkg -L "$@";; f*) dpkg -L "$@";;
h*) show_help;; h*) show_help;;
add|i*) assert_not_root; apt update; apt install "$@";; add|i*) assert_not_root; check_pkgcache; apt install "$@";;
list-a*) apt list "$@";; list-a*) apt list "$@";;
list-i*) apt list --installed "$@";; list-i*) apt list --installed "$@";;
rei*) assert_not_root; apt install --reinstall "$@";; rei*) assert_not_root; apt install --reinstall "$@";;
se*) assert_not_root; apt update; apt search "$@";; se*) assert_not_root; check_pkgcache; apt search "$@";;
sh*) apt show "$@";; sh*) apt show "$@";;
un*|rem*|rm|del*) assert_not_root; apt remove "$@";; un*|rem*|rm|del*) assert_not_root; apt remove "$@";;
up*) assert_not_root; apt update; apt full-upgrade "$@";; up*) assert_not_root; apt update; apt full-upgrade "$@";;
*) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)";; *) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)"; exit 1;;
esac esac