[arch-releng] [RFC] [PATCH] [archiso2dual] Add support for squashfs compression types
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Sun Oct 17 15:22:29 EDT 2010
Add -c option with defaults to 'auto' thats autodetect current compression type
of squashfs images to be processed.
Add a note about supported status in Linux versions.
Needs squashfs-tools-4.1 (now on extra).
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
---
archiso2dual/archiso2dual | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/archiso2dual/archiso2dual b/archiso2dual/archiso2dual
index 5b17b4a..f34f078 100755
--- a/archiso2dual/archiso2dual
+++ b/archiso2dual/archiso2dual
@@ -19,6 +19,7 @@ work_dir="/tmp/archiso2dual"
isomounts_file="/usr/share/archiso2dual/isomounts"
syslinuxcfg_file="/usr/share/archiso2dual/syslinux.cfg"
removefiles_file="/usr/share/archiso2dual/removefiles.lst"
+compression="auto"
appname=${0##*/}
_error="0"
_confirm="n"
@@ -111,11 +112,16 @@ mksquashfs_image() {
echo "Executing: ${FUNCNAME}"
img=${1}
arch=${2}
+ if [ "${compression}" = "auto" ]; then
+ _compression=$(unsquashfs -s ${work_dir}/iso/${arch}/${img}.sqfs | awk '/^Compression/ { print $2 }')
+ else
+ _compression=${compression}
+ fi
rm -f ${work_dir}/iso/${arch}/${img}.sqfs
if [ "${quiet}" = "y" ]; then
- mksquashfs ${work_dir}/tmp/${arch}/${img} ${work_dir}/iso/${arch}/${img}.sqfs > /dev/null
+ mksquashfs ${work_dir}/tmp/${arch}/${img} ${work_dir}/iso/${arch}/${img}.sqfs -comp ${_compression} > /dev/null
else
- mksquashfs ${work_dir}/tmp/${arch}/${img} ${work_dir}/iso/${arch}/${img}.sqfs
+ mksquashfs ${work_dir}/tmp/${arch}/${img} ${work_dir}/iso/${arch}/${img}.sqfs -comp ${_compression}
fi
}
@@ -239,6 +245,12 @@ show_help()
(default to '${publisher}')"
echo " -A <application> Set an application name for the disk
(default to '${application}')"
+ echo " -c <compressor> Set SquashFS compression type: auto, gzip, lzma or lzo
+ (default to '${compression}')"
+ echo " NOTES:"
+ echo " lzma: not officially supported yet by Linux (2.6.36)"
+ echo " lzo: needs Linux >= 2.6.36"
+
echo " -y Confirm execution (otherwise only show configuration)"
echo " -v Enable verbose output"
echo " -h This message"
@@ -334,7 +346,7 @@ if [ "$EUID" != "0" ]; then
exit 1
fi
-while getopts '3:6:o:T:M:S:R:L:P:A:yvh' arg; do
+while getopts '3:6:o:T:M:S:R:L:P:A:c:yvh' arg; do
case "${arg}" in
3) isofile_i686="${OPTARG}" ;;
6) isofile_x86_64="${OPTARG}" ;;
@@ -350,6 +362,7 @@ while getopts '3:6:o:T:M:S:R:L:P:A:yvh' arg; do
L) label="${OPTARG}" ;;
P) publisher="${OPTARG}" ;;
A) application="${OPTARG}" ;;
+ c) compression="${OPTARG}" ;;
w) work_dir="${OPTARG}" ;;
y) _confirm="y" ;;
v) quiet="n"; _v="-v" ;;
--
1.7.3.1
More information about the arch-releng
mailing list