svn commit: r214139 - head/usr.sbin/pc-sysinstall/backend
Warner Losh
imp at FreeBSD.org
Thu Oct 21 17:20:38 UTC 2010
Author: imp
Date: Thu Oct 21 17:20:37 2010
New Revision: 214139
URL: http://svn.freebsd.org/changeset/base/214139
Log:
This is an updated patch to the last patch to do this which fixes a
local variable issue. This patch decompresses compressed images to the
stdout when writing to a device to avoid running out of space issues.
Submitted by: John Hixson
Pr: 151049
Modified:
head/usr.sbin/pc-sysinstall/backend/functions.sh
Modified: head/usr.sbin/pc-sysinstall/backend/functions.sh
==============================================================================
--- head/usr.sbin/pc-sysinstall/backend/functions.sh Thu Oct 21 17:14:44 2010 (r214138)
+++ head/usr.sbin/pc-sysinstall/backend/functions.sh Thu Oct 21 17:20:37 2010 (r214139)
@@ -325,64 +325,8 @@ get_compression_type()
export VAL
}
-decompress_file()
-{
- local FILE
- local COMPRESSION
-
- FILE="$1"
- COMPRESSION="$2"
-
- if [ -n "${COMPRESSION}" ]
- then
- case "${COMPRESSION}" in
- lzw)
- rc_halt "uncompress ${FILE}"
- VAL="${FILE%.Z}"
- ;;
-
- lzo)
- rc_halt "lzop -d ${FILE}"
- VAL="${FILE%.lzo}"
- ;;
-
- lzma)
- rc_halt "lzma -d ${FILE}"
- VAL="${FILE%.lzma}"
- ;;
-
- gzip)
- rc_halt "gunzip ${FILE}"
- VAL="${FILE%.gz}"
- ;;
-
- bzip2)
- rc_halt "bunzip2 ${FILE}"
- VAL="${FILE%.bz2}"
- ;;
-
- xz)
- rc_halt "xz -d ${FILE}"
- VAL="${FILE%.xz}"
- ;;
-
- zip)
- rc_halt "unzip ${FILE}"
- VAL="${FILE%.zip}"
- ;;
-
- *)
- exit_err "ERROR: ${COMPRESSION} compression is not supported"
- ;;
- esac
- fi
-
- export VAL
-}
-
write_image()
{
- local IMAGE_FILE
local DEVICE_FILE
IMAGE_FILE="$1"
@@ -418,11 +362,51 @@ write_image()
get_compression_type "${IMAGE_FILE}"
COMPRESSION="${VAL}"
- decompress_file "${IMAGE_FILE}" "${COMPRESSION}"
- IMAGE_FILE="${VAL}"
- fi
+ case "${COMPRESSION}" in
+ lzw)
+ rc_halt "uncompress ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.Z}"
+ ;;
+
+ lzo)
+ rc_halt "lzop -d $IMAGE_{FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.lzo}"
+ ;;
+
+ lzma)
+ rc_halt "lzma -d ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.lzma}"
+ ;;
+
+ gzip)
+ rc_halt "gunzip ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.gz}"
+ ;;
- rc_halt "dd if=${IMAGE_FILE} of=${DEVICE_FILE} bs=128k"
+ bzip2)
+ rc_halt "bunzip2 ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.bz2}"
+ ;;
+
+ xz)
+ rc_halt "xz -d ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.xz}"
+ ;;
+
+ zip)
+ rc_halt "unzip ${IMAGE_FILE} -c | dd of=${DEVICE_FILE} bs=128k"
+ IMAGE_FILE="${IMAGE_FILE%.zip}"
+ ;;
+
+ *)
+ exit_err "ERROR: ${COMPRESSION} compression is not supported"
+ ;;
+ esac
+
+ else
+ rc_halt "dd if=${IMAGE_FILE} of=${DEVICE_FILE} bs=128k"
+
+ fi
};
install_fresh()
More information about the svn-src-all
mailing list