Skip to content

Commit

Permalink
feat(main/termux-tools): allow usage with pacman
Browse files Browse the repository at this point in the history
Co-authored-by: Maxython <mixython@gmail.com>
Closes: termux/termux-packages#10486
  • Loading branch information
Maxython authored and agnostic-apollo committed May 4, 2022
1 parent c19f60a commit 7ca1105
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 27 deletions.
2 changes: 1 addition & 1 deletion packages/termux-tools/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://termux.org/
TERMUX_PKG_DESCRIPTION="Basic system tools for Termux"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=0.178
TERMUX_PKG_VERSION=0.179
TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_ESSENTIAL=true
Expand Down
54 changes: 28 additions & 26 deletions packages/termux-tools/pkg
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
#!/bin/bash
set -eu

USER_AGENT='Termux-PKG/1.0 mirror-checker (termux-tools @PACKAGE_VERSION@) Termux (@TERMUX_APP_PACKAGE@; install-prefix:@TERMUX_PREFIX@)'
declare -A commands_pkg=(
["debian"]="dpkg -L|apt show|select_mirror; update_apt_cache; apt install|apt autoclean|apt clean|apt list|apt list --installed|apt install --reinstall|select_mirror; update_apt_cache; apt search|apt remove|select_mirror; apt update; apt full-upgrade"
["pacman"]="pacman -Ql|pacman -Qi|pacman -Sy --needed|pacman -Sc|pacman -Scc|pacman -Sl|pacman -Q|pacman -S|pacman -Sys|pacman -Rcns|pacman -Syu"
)

show_help() {
local cache_size
cache_size=$(du -sh @TERMUX_CACHE_DIR@/apt/archives 2>/dev/null | cut -f1)
local cache_dir=""
if [ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" ]; then
cache_dir="@TERMUX_CACHE_DIR@/apt/archives"
elif [ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" ]; then
cache_dir="@TERMUX_PREFIX@/var/cache/pacman/pkg"
fi
cache_size=$(du -sh "$cache_dir" 2>/dev/null | cut -f1)

echo 'Usage: pkg command [arguments]'
echo
Expand Down Expand Up @@ -51,7 +60,7 @@ check_mirror() {
--fail \
--connect-timeout "$timeout" \
--location \
--user-agent "$USER_AGENT" \
--user-agent "Termux-PKG/1.0 mirror-checker (termux-tools @PACKAGE_VERSION@) Termux (@TERMUX_APP_PACKAGE@; install-prefix:@TERMUX_PREFIX@)" \
"$mirror/dists/stable/Release" >/dev/null 2>&1
}

Expand Down Expand Up @@ -185,33 +194,26 @@ if [ $# = 0 ]; then
show_help
fi

case "$TERMUX_MAIN_PACKAGE_FORMAT" in
debian|pacman) IFS="|" pkg_cmd=(${commands_pkg["$TERMUX_MAIN_PACKAGE_FORMAT"]});;
*) echo "Error: pkg is not supported with '$TERMUX_MAIN_PACKAGE_FORMAT' package manager format"; exit 1;;
esac

CMD="$1"
shift 1

case "$CMD" in
f*) dpkg -L "$@";;
f*) eval ${pkg_cmd[0]} "$@";;
h*) show_help;;
sh*|inf*) apt show "$@";;
add|i*)
select_mirror
update_apt_cache
apt install "$@"
;;
autoc*) apt autoclean;;
cl*) apt clean;;
list-a*) apt list "$@";;
list-i*) apt list --installed "$@";;
rei*) apt install --reinstall "$@";;
se*)
select_mirror
update_apt_cache
apt search "$@"
;;
un*|rem*|rm|del*) apt remove "$@";;
up*)
select_mirror
apt update
apt full-upgrade "$@"
;;
sh*|inf*) eval ${pkg_cmd[1]} "$@";;
add|i*) eval ${pkg_cmd[2]} "$@";;
autoc*) eval ${pkg_cmd[3]};;
cl*) eval ${pkg_cmd[4]};;
list-a*) eval ${pkg_cmd[5]} "$@";;
list-i*) eval ${pkg_cmd[6]} "$@";;
rei*) eval ${pkg_cmd[7]} "$@";;
se*) eval ${pkg_cmd[8]} "$@";;
un*|rem*|rm|del*) eval ${pkg_cmd[9]} "$@";;
up*) eval ${pkg_cmd[10]} "$@";;
*) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)"; exit 1;;
esac

0 comments on commit 7ca1105

Please sign in to comment.