build-package: mv termux_step_extract_package to scripts/build/
This commit is contained in:
parent
0b9109238a
commit
3e088d12f7
@ -46,44 +46,7 @@ source scripts/build/termux_step_get_repo_files.sh
|
||||
source scripts/build/termux_step_start_build.sh
|
||||
|
||||
# Run just after sourcing $TERMUX_PKG_BUILDER_SCRIPT. May be overridden by packages.
|
||||
termux_step_extract_package() {
|
||||
if [ -z "${TERMUX_PKG_SRCURL:=""}" ] || [ -n "${TERMUX_PKG_SKIP_SRC_EXTRACT:=""}" ]; then
|
||||
mkdir -p "$TERMUX_PKG_SRCDIR"
|
||||
return
|
||||
fi
|
||||
cd "$TERMUX_PKG_TMPDIR"
|
||||
local PKG_SRCURL=(${TERMUX_PKG_SRCURL[@]})
|
||||
local PKG_SHA256=(${TERMUX_PKG_SHA256[@]})
|
||||
if [ ! ${#PKG_SRCURL[@]} == ${#PKG_SHA256[@]} ] && [ ! ${#PKG_SHA256[@]} == 0 ]; then
|
||||
termux_error_exit "Error: length of TERMUX_PKG_SRCURL isn't equal to length of TERMUX_PKG_SHA256."
|
||||
fi
|
||||
# STRIP=1 extracts archives straight into TERMUX_PKG_SRCDIR while STRIP=0 puts them in subfolders. zip has same behaviour per default
|
||||
# If this isn't desired then this can be fixed in termux_step_post_extract_package.
|
||||
local STRIP=1
|
||||
for i in $(seq 0 $(( ${#PKG_SRCURL[@]}-1 ))); do
|
||||
test "$i" -gt 0 && STRIP=0
|
||||
local filename
|
||||
filename=$(basename "${PKG_SRCURL[$i]}")
|
||||
local file="$TERMUX_PKG_CACHEDIR/$filename"
|
||||
# Allow TERMUX_PKG_SHA256 to be empty:
|
||||
set +u
|
||||
termux_download "${PKG_SRCURL[$i]}" "$file" "${PKG_SHA256[$i]}"
|
||||
set -u
|
||||
|
||||
local folder
|
||||
set +o pipefail
|
||||
if [ "${file##*.}" = zip ]; then
|
||||
folder=$(unzip -qql "$file" | head -n1 | tr -s ' ' | cut -d' ' -f5-)
|
||||
rm -Rf $folder
|
||||
unzip -q "$file"
|
||||
mv $folder "$TERMUX_PKG_SRCDIR"
|
||||
else
|
||||
mkdir -p "$TERMUX_PKG_SRCDIR"
|
||||
tar xf "$file" -C "$TERMUX_PKG_SRCDIR" --strip-components=$STRIP
|
||||
fi
|
||||
set -o pipefail
|
||||
done
|
||||
}
|
||||
source scripts/build/termux_step_extract_package.sh
|
||||
|
||||
# Hook for packages to act just after the package has been extracted.
|
||||
# Invoked in $TERMUX_PKG_SRCDIR.
|
||||
|
38
scripts/build/termux_step_extract_package.sh
Normal file
38
scripts/build/termux_step_extract_package.sh
Normal file
@ -0,0 +1,38 @@
|
||||
termux_step_extract_package() {
|
||||
if [ -z "${TERMUX_PKG_SRCURL:=""}" ] || [ -n "${TERMUX_PKG_SKIP_SRC_EXTRACT:=""}" ]; then
|
||||
mkdir -p "$TERMUX_PKG_SRCDIR"
|
||||
return
|
||||
fi
|
||||
cd "$TERMUX_PKG_TMPDIR"
|
||||
local PKG_SRCURL=(${TERMUX_PKG_SRCURL[@]})
|
||||
local PKG_SHA256=(${TERMUX_PKG_SHA256[@]})
|
||||
if [ ! ${#PKG_SRCURL[@]} == ${#PKG_SHA256[@]} ] && [ ! ${#PKG_SHA256[@]} == 0 ]; then
|
||||
termux_error_exit "Error: length of TERMUX_PKG_SRCURL isn't equal to length of TERMUX_PKG_SHA256."
|
||||
fi
|
||||
# STRIP=1 extracts archives straight into TERMUX_PKG_SRCDIR while STRIP=0 puts them in subfolders. zip has same behaviour per default
|
||||
# If this isn't desired then this can be fixed in termux_step_post_extract_package.
|
||||
local STRIP=1
|
||||
for i in $(seq 0 $(( ${#PKG_SRCURL[@]}-1 ))); do
|
||||
test "$i" -gt 0 && STRIP=0
|
||||
local filename
|
||||
filename=$(basename "${PKG_SRCURL[$i]}")
|
||||
local file="$TERMUX_PKG_CACHEDIR/$filename"
|
||||
# Allow TERMUX_PKG_SHA256 to be empty:
|
||||
set +u
|
||||
termux_download "${PKG_SRCURL[$i]}" "$file" "${PKG_SHA256[$i]}"
|
||||
set -u
|
||||
|
||||
local folder
|
||||
set +o pipefail
|
||||
if [ "${file##*.}" = zip ]; then
|
||||
folder=$(unzip -qql "$file" | head -n1 | tr -s ' ' | cut -d' ' -f5-)
|
||||
rm -Rf $folder
|
||||
unzip -q "$file"
|
||||
mv $folder "$TERMUX_PKG_SRCDIR"
|
||||
else
|
||||
mkdir -p "$TERMUX_PKG_SRCDIR"
|
||||
tar xf "$file" -C "$TERMUX_PKG_SRCDIR" --strip-components=$STRIP
|
||||
fi
|
||||
set -o pipefail
|
||||
done
|
||||
}
|
Loading…
Reference in New Issue
Block a user