- if [ ! -f ${LFS_PKG_DIR}/${TARGET}.tar.bz2 ]; then
- fpkg ${SOURCE} ${URL}
-
- if [ -f ${LFS_PKG_DIR}/${SOURCE}.tar.bz2 ]; then
- mv ${LFS_PKG_DIR}/${SOURCE}.tar.bz2 ${LFS_PKG_DIR}/${TARGET}.tar.bz2
+ mkdir -v -p ${DEST_DIR} >> ${LFS_LOG_FILE} 2>&1
+
+ if [ -z "${SRC_DIR}" ]; then
+ # Default source subdirectory on server
+ SRC_DIR=""
+ else
+ URL=${URL}/${SRC_DIR}
+ fi
+
+ DEST_FILE=${DEST_DIR}/${PACK}.${FINAL_EXT}
+
+ if [ ! -f ${DEST_FILE} ]; then
+ rcmd "${FETCH_STRING}" static_getpkg ${SRC_FILENAME} ${URL} ${FILE_EXT}
+
+ # Move file if source filename is not equal to package name and/or destination
+ # directory is not the default:
+ DOWNLOADED_FILE=${LFS_PKG_DIR}/${SRC_FILENAME}.${FINAL_EXT}
+
+ if [ "${DEST_FILE}" != "${DOWNLOADED_FILE}" ]; then
+ mv ${DOWNLOADED_FILE} ${DEST_FILE}