24 lines
849 B
Bash
24 lines
849 B
Bash
termux_extract_src_archive() {
|
|
# 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_get_source.
|
|
local STRIP=1
|
|
local PKG_SRCURL=(${TERMUX_PKG_SRCURL[@]})
|
|
local PKG_SHA256=(${TERMUX_PKG_SHA256[@]})
|
|
for i in $(seq 0 $(( ${#PKG_SRCURL[@]}-1 ))); do
|
|
local file="$TERMUX_PKG_CACHEDIR/$(basename "${PKG_SRCURL[$i]}")"
|
|
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
|
|
test "$i" -gt 0 && STRIP=0
|
|
mkdir -p "$TERMUX_PKG_SRCDIR"
|
|
tar xf "$file" -C "$TERMUX_PKG_SRCDIR" --strip-components=$STRIP
|
|
fi
|
|
set -o pipefail
|
|
done
|
|
}
|