Skip to content

Commit ff5c2d6

Browse files
committed
fix(ci): fixing package cleanup to work with toybox df.
1 parent 8c25273 commit ff5c2d6

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

scripts/build/termux_step_cleanup_packages.sh

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

scripts/properties.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ TERMUX_ETC_PREFIX_DIR_PATH="${TERMUX_PREFIX}/etc"
4141
TERMUX_PROFILE_D_PREFIX_DIR_PATH="${TERMUX_ETC_PREFIX_DIR_PATH}/profile.d"
4242
TERMUX_CONFIG_PREFIX_DIR_PATH="${TERMUX_ETC_PREFIX_DIR_PATH}/termux"
4343
TERMUX_BOOTSTRAP_CONFIG_DIR_PATH="${TERMUX_CONFIG_PREFIX_DIR_PATH}/bootstrap"
44+
TERMUX_CLEANUP_BUILT_PACKAGES_THRESHOLD="$(( 5 * 1024 ** 3 ))" # 5 GiB
4445

4546
# Path to CGCT tools
4647
CGCT_DEFAULT_PREFIX="/data/data/com.termux/files/usr/glibc"

scripts/updates/utils/termux_pkg_upgrade_version.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ termux_pkg_upgrade_version() {
9797
done
9898

9999
local force_cleanup="false"
100+
local space_available
100101

101102
if [[ -d "/var/lib/docker" ]]; then
102103
# Get available space in bytes
103-
local space_available="$(df "/var/lib/docker" | awk 'NR==2 { print $4 * 1024 }')"
104-
local cleanup_threshold="$(( 5 * 1024 ** 3 ))" # 3 GiB
104+
space_available="$(df "/var/lib/docker" | awk 'NR==2 { print $4 * 1024 }')"
105105

106-
if (( space_available <= cleanup_threshold )); then
106+
if (( space_available <= TERMUX_CLEANUP_BUILT_PACKAGES_THRESHOLD )); then
107107
force_cleanup="true"
108108
fi
109109
fi

0 commit comments

Comments
 (0)