extract: cleanup

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
This commit is contained in:
Ian Leonard 2021-03-26 06:57:04 +00:00
parent c5823d0864
commit 7bbd968108

View File

@ -14,7 +14,7 @@ fi
[ ! -d "${SOURCES}/${1}" ] && die "${PKG_NAME}: ${SOURCES}/${1} not found" [ ! -d "${SOURCES}/${1}" ] && die "${PKG_NAME}: ${SOURCES}/${1} not found"
[ ! -d "${2}" ] && die "${PKG_NAME}: target ${2} not found" [ ! -d "${2}" ] && die "${PKG_NAME}: target ${2} not found"
if [[ ${PKG_URL} =~ ^file:// ]]; then if [[ "${PKG_URL}" =~ ^file:// ]]; then
FULL_SOURCE_PATH="${PKG_SOURCE_NAME}" FULL_SOURCE_PATH="${PKG_SOURCE_NAME}"
else else
FULL_SOURCE_PATH="${SOURCES}/${1}/${PKG_SOURCE_NAME}" FULL_SOURCE_PATH="${SOURCES}/${1}/${PKG_SOURCE_NAME}"
@ -27,7 +27,7 @@ if [ ! -f "${FULL_SOURCE_PATH}" -a ! -d "${FULL_SOURCE_PATH}" ]; then
fi fi
# The build system expects packages to be extracted to # The build system expects packages to be extracted to
# ${PKG_BUILD.} # ${PKG_BUILD}.
# Try to strip the top level dir from the archive and extract to # Try to strip the top level dir from the archive and extract to
# the correct directory if possible so packages don't need to # the correct directory if possible so packages don't need to
# set PKG_SOURCE_DIR and scripts/unpack doesn't need to rename # set PKG_SOURCE_DIR and scripts/unpack doesn't need to rename
@ -40,41 +40,40 @@ fi
# can be disabled by PKG_TAR_STRIP_COMPONENTS="no" in package.mk # can be disabled by PKG_TAR_STRIP_COMPONENTS="no" in package.mk
TAR_OPTS="" TAR_OPTS=""
if [ -z "${PKG_SOURCE_DIR}" ]; then if [ -z "${PKG_SOURCE_DIR}" ]; then
[ -z ${PKG_TAR_STRIP_COMPONENTS} ] && TAR_OPTS="--strip-components=1" || : [ -z "${PKG_TAR_STRIP_COMPONENTS}" ] && TAR_OPTS="--strip-components=1" || :
DESTDIR="${2}/${PKG_NAME}-${PKG_VERSION}" DESTDIR="${2}/${PKG_NAME}-${PKG_VERSION}"
else else
DESTDIR="${2}" DESTDIR="${2}"
fi fi
case ${PKG_SOURCE_NAME} in case "${PKG_SOURCE_NAME}" in
*.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz) *.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz)
mkdir -p "${DESTDIR}" mkdir -p "${DESTDIR}"
tar xf ${FULL_SOURCE_PATH} ${TAR_OPTS} -C "${DESTDIR}" tar xf "${FULL_SOURCE_PATH}" "${TAR_OPTS}" -C "${DESTDIR}"
;; ;;
*.tar.zst | *.tzst) *.tar.zst | *.tzst)
mkdir -p "${DESTDIR}" mkdir -p "${DESTDIR}"
zstdcat ${FULL_SOURCE_PATH} | tar xf - ${TAR_OPTS} -C "${DESTDIR}" zstdcat "${FULL_SOURCE_PATH}" | tar xf - "${TAR_OPTS}" -C "${DESTDIR}"
;; ;;
*.7z) *.7z)
mkdir -p ${2}/${1} mkdir -p "${2}/${1}"
7z x -o${2}/${1} ${FULL_SOURCE_PATH} 7z x -o"${2}/${1}" "${FULL_SOURCE_PATH}"
;; ;;
*.zip) *.zip)
unzip -q ${FULL_SOURCE_PATH} -d ${2} unzip -q "${FULL_SOURCE_PATH}" -d "${2}"
;; ;;
*.diff | *.patch) *.diff | *.patch)
cat ${FULL_SOURCE_PATH} | patch -d ${2} -p1 patch -d "${2}" -p1 < "${FULL_SOURCE_PATH}"
;; ;;
*.diff.bz2 | *.patch.bz2 | patch-*.bz2) *.diff.bz2 | *.patch.bz2 | patch-*.bz2)
bzcat ${FULL_SOURCE_PATH} | patch -d ${2} -p1 bzcat "${FULL_SOURCE_PATH}" | patch -d "${2}" -p1
;; ;;
*.diff.gz | *.patch.gz | patch-*.gz) *.diff.gz | *.patch.gz | patch-*.gz)
zcat ${FULL_SOURCE_PATH} | patch -d ${2} -p1 zcat "${FULL_SOURCE_PATH}" | patch -d "${2}" -p1
;; ;;
*) *)
FULL_DEST_PATH="${2}/${PKG_NAME}-${PKG_VERSION}" FULL_DEST_PATH="${2}/${PKG_NAME}-${PKG_VERSION}"
mkdir ${FULL_DEST_PATH} mkdir "${FULL_DEST_PATH}"
tar cf - -C ${FULL_SOURCE_PATH} ${PKG_TAR_COPY_OPTS} . | \ tar cf - -C "${FULL_SOURCE_PATH}" "${PKG_TAR_COPY_OPTS}" . | tar xf - -C "${FULL_DEST_PATH}"
tar xf - -C ${FULL_DEST_PATH}
;; ;;
esac esac