Henrik Grimler
6 years ago
committed by
Leonid Plyushch
2 changed files with 39 additions and 38 deletions
@ -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