|
1 | 1 | #!/bin/bash
|
2 | 2 | set -eu
|
3 | 3 |
|
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 |
5 | 12 |
|
6 | 13 | show_help() {
|
7 | 14 | 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) |
9 | 22 |
|
10 | 23 | echo 'Usage: pkg command [arguments]'
|
11 | 24 | echo
|
@@ -185,33 +198,26 @@ if [ $# = 0 ]; then
|
185 | 198 | show_help
|
186 | 199 | fi
|
187 | 200 |
|
| 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 | + |
188 | 206 | CMD="$1"
|
189 | 207 | shift 1
|
190 | 208 |
|
191 | 209 | case "$CMD" in
|
192 |
| - f*) dpkg -L "$@";; |
| 210 | + f*) eval ${pkg_cmd[0]} "$@";; |
193 | 211 | 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]} "$@";; |
216 | 222 | *) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)"; exit 1;;
|
217 | 223 | esac
|
0 commit comments