@@ -2,24 +2,27 @@ termux_step_cleanup_packages() {
22 [[ " ${TERMUX_CLEANUP_BUILT_PACKAGES_ON_LOW_DISK_SPACE:= false} " == " true" ]] || return 0
33 [[ -d " $TERMUX_TOPDIR " ]] || return 0
44
5- # How much space is considered to be enough
6- local CLEANUP_THRESHOLD=" $(( 5 * 1024 ** 3 )) " # 5 GiB
5+ local AVAILABLE TERMUX_PACKAGES_DIRECTORIES PKGS PKG_REGEX
76
87 # Extract available disk space in bytes
9- local AVAILABLE=" $( df " $TERMUX_TOPDIR " | awk ' NR==2 {print $4 * 1024}' ) "
8+ AVAILABLE=" $( df " $TERMUX_TOPDIR " | awk ' NR==2 {print $4 * 1024}' ) "
109
1110 # No need to cleanup if there is enough disk space
12- (( AVAILABLE <= CLEANUP_THRESHOLD )) || return 0
11+ (( AVAILABLE <= TERMUX_CLEANUP_BUILT_PACKAGES_THRESHOLD )) || return 0
1312
14- local TERMUX_PACKAGES_DIRECTORIES=" $( jq --raw-output ' del(.pkg_format) | keys | .[]' " ${TERMUX_SCRIPTDIR} " /repo.json) "
13+ TERMUX_PACKAGES_DIRECTORIES=" $( jq --raw-output ' del(.pkg_format) | keys | .[]' " ${TERMUX_SCRIPTDIR} " /repo.json) "
1514
1615 # Build package name regex to be used with `find`, avoiding loops.
17- local PKG_REGEX=" $( find ${TERMUX_PACKAGES_DIRECTORIES} -mindepth 1 -maxdepth 1 -type d -printf ' %f|' ) ^$"
16+ PKGS=" $( find ${TERMUX_PACKAGES_DIRECTORIES} -mindepth 1 -maxdepth 1 -type d -printf ' %f\n' ) "
17+ [[ -z " $PKGS " ]] && return 0
1818
1919 # Exclude current package from the list.
20- PKG_REGEX=" ${PKG_REGEX// $TERMUX_PKG_NAME |/ } "
20+ PKGS=" $( printf " %s" " $PKGS " | grep -Fxv " $TERMUX_PKG_NAME " ) "
21+ [[ -z " $PKGS " ]] && return 0
22+
23+ PKG_REGEX=" $( printf " %s" " $PKGS " | sed -zE ' s/[][\.|$(){}?+*^]/\\&/g' | sed -E ' s/(.*)/(\1)/g' | sed -zE -e ' s/[\n]+/|/g' -e ' s/(.*)/(\1)/g' ) "
2124
2225 echo " INFO: cleaning up some disk space for building \" ${TERMUX_PKG_NAME} \" ."
2326
24- find " $TERMUX_TOPDIR " -mindepth 1 -maxdepth 1 -type d -regextype posix-extended -regex " .*/( $PKG_REGEX ) $" -exec rm -rf {} +
27+ (cd " $TERMUX_TOPDIR " && find . -mindepth 1 -maxdepth 1 -type d -regextype posix-extended -regex " ^\./ $PKG_REGEX $" -exec rm -rf " {} " +)
2528}
0 commit comments