Skip to content

Commit efa898a

Browse files
committed
termux-tools: improving pkg to work with pacman
1 parent b2fc349 commit efa898a

File tree

2 files changed

+32
-26
lines changed

2 files changed

+32
-26
lines changed

packages/termux-tools/build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://termux.org/
22
TERMUX_PKG_DESCRIPTION="Basic system tools for Termux"
33
TERMUX_PKG_LICENSE="GPL-3.0"
44
TERMUX_PKG_MAINTAINER="@termux"
5-
TERMUX_PKG_VERSION=0.175
5+
TERMUX_PKG_VERSION=0.179
66
TERMUX_PKG_SKIP_SRC_EXTRACT=true
77
TERMUX_PKG_PLATFORM_INDEPENDENT=true
88
TERMUX_PKG_ESSENTIAL=true

packages/termux-tools/pkg

+31-25
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
11
#!/bin/bash
22
set -eu
33

4-
USER_AGENT='Termux-PKG/1.0 mirror-checker (termux-tools @PACKAGE_VERSION@) Termux (@TERMUX_APP_PACKAGE@; install-prefix:@TERMUX_PREFIX@)'
4+
declare -A commands_pkg=(
5+
["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"
6+
["pacman"]="pacman -Ql|pacman -Qi|pacman -Sy --needed|pacman -Sc|pacman -Scc|pacman -Sl|pacman -Q|pacman -S|pacman -Sys|pacman -Rcns|pacman -Syu"
7+
)
8+
9+
if [ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" ]; then
10+
USER_AGENT='Termux-PKG/1.0 mirror-checker (termux-tools @PACKAGE_VERSION@) Termux (@TERMUX_APP_PACKAGE@; install-prefix:@TERMUX_PREFIX@)'
11+
fi
512

613
show_help() {
714
local cache_size
8-
cache_size=$(du -sh @TERMUX_CACHE_DIR@/apt/archives 2>/dev/null | cut -f1)
15+
local cache_dir=""
16+
if [ "$TERMUX_MAIN_PACKAGE_FORMAT" = "debian" ]; then
17+
cache_dir="@TERMUX_CACHE_DIR@/apt/archives"
18+
elif [ "$TERMUX_MAIN_PACKAGE_FORMAT" = "pacman" ]; then
19+
cache_dir="@TERMUX_PREFIX@/var/cache/pacman/pkg"
20+
fi
21+
cache_size=$(du -sh "$cache_dir" 2>/dev/null | cut -f1)
922

1023
echo 'Usage: pkg command [arguments]'
1124
echo
@@ -185,33 +198,26 @@ if [ $# = 0 ]; then
185198
show_help
186199
fi
187200

201+
case "$TERMUX_MAIN_PACKAGE_FORMAT" in
202+
debian|pacman) IFS="|" pkg_cmd=(${commands_pkg["$TERMUX_MAIN_PACKAGE_FORMAT"]});;
203+
*) echo "Error: pkg is not supported with '$TERMUX_MAIN_PACKAGE_FORMAT' package manager format"; exit 1;;
204+
esac
205+
188206
CMD="$1"
189207
shift 1
190208

191209
case "$CMD" in
192-
f*) dpkg -L "$@";;
210+
f*) eval ${pkg_cmd[0]} "$@";;
193211
h*) show_help;;
194-
sh*|inf*) apt show "$@";;
195-
add|i*)
196-
select_mirror
197-
update_apt_cache
198-
apt install "$@"
199-
;;
200-
autoc*) apt autoclean;;
201-
cl*) apt clean;;
202-
list-a*) apt list "$@";;
203-
list-i*) apt list --installed "$@";;
204-
rei*) apt install --reinstall "$@";;
205-
se*)
206-
select_mirror
207-
update_apt_cache
208-
apt search "$@"
209-
;;
210-
un*|rem*|rm|del*) apt remove "$@";;
211-
up*)
212-
select_mirror
213-
apt update
214-
apt full-upgrade "$@"
215-
;;
212+
sh*|inf*) eval ${pkg_cmd[1]} "$@";;
213+
add|i*) eval ${pkg_cmd[2]} "$@";;
214+
autoc*) eval ${pkg_cmd[3]};;
215+
cl*) eval ${pkg_cmd[4]};;
216+
list-a*) eval ${pkg_cmd[5]} "$@";;
217+
list-i*) eval ${pkg_cmd[6]} "$@";;
218+
rei*) eval ${pkg_cmd[7]} "$@";;
219+
se*) eval ${pkg_cmd[8]} "$@";;
220+
un*|rem*|rm|del*) eval ${pkg_cmd[9]} "$@";;
221+
up*) eval ${pkg_cmd[10]} "$@";;
216222
*) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)"; exit 1;;
217223
esac

0 commit comments

Comments
 (0)