# # set +o errexit -o noglob -o nounset 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_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;; gz) gunzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;; lz) lzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;; xz) xz -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;; *) tar -C "${PKG_BASE_DIR}" -xf "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}"; ;; esac; if [ "${?}" -ne 0 ]; then rtl_fileop cd "${_oldpwd}"; return 1; else rtl_fileop cd "${_oldpwd}"; fi; fi; fi; }; # vim:filetype=sh