#
# set +o errexit -o noglob is assumed.
#
pkgp_fetch_extract_type() {
local _fname="${1}";
if [ "${1##*.tar.}" != "${1}" ]; then
printf "%s" "${1##*.tar.}";
elif [ "${1##*.t}" != "${1}" ]; then
printf "%s" "${1##*.t}";
fi;
};
pkg_fetch_extract() {
if [ -n "${PKG_URL}" ]; then
_oldpwd="${PWD}";
if ! rtl_fileop cd "${PKG_BASE_DIR}"\
|| ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_SUBDIR}"; then
rtl_fileop cd "${_oldpwd}"; return 1;
else
case "$(pkgp_fetch_extract_type "${PKG_NAME}")" in
bz2) bunzip2 -d < "${BUILD_DLCACHEDIR}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
gz) gunzip -d < "${BUILD_DLCACHEDIR}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
lz) lzip -d < "${BUILD_DLCACHEDIR}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
xz) xz -d < "${BUILD_DLCACHEDIR}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
*) tar -C "${PKG_BASE_DIR}" -xf "${BUILD_DLCACHEDIR}/${PKG_FNAME}"; ;;
esac;
if [ "${?}" -ne 0 ]; then
rtl_fileop cd "${_oldpwd}"; return 1;
else
rtl_fileop cd "${_oldpwd}";
fi;
fi;
fi;
};
# vim:filetype=sh