Support -q option to build the ISO without (re-)creating the squashfs file v0.9.6
authorMichael Prokop <mika@grml.org>
Wed, 19 Nov 2008 10:13:39 +0000 (11:13 +0100)
committerMichael Prokop <mika@grml.org>
Wed, 19 Nov 2008 10:26:34 +0000 (11:26 +0100)
debian/changelog
docs/grml-live.txt
grml-live

index 88961be..e11a4f6 100644 (file)
@@ -29,8 +29,10 @@ grml-live (0.9.6) unstable; urgency=low
   * Generate ISO with volume label "${GRML_NAME} ${VERSION}" instead of
     "grml $VERSION" so we propagate the according grml-name. Thanks to
     Thomas Lehmann!
+  * Support -q option to build the ISO without (re-)creating the squashfs
+    compressed file using mksquashfs.
 
- -- Michael Prokop <mika@grml.org>  Tue, 18 Nov 2008 23:47:24 +0100
+ -- Michael Prokop <mika@grml.org>  Wed, 19 Nov 2008 11:13:05 +0100
 
 grml-live (0.9.5) unstable; urgency=low
 
index f3173b7..1e9f0cc 100644 (file)
@@ -12,7 +12,7 @@ Synopsis
 
 grml-live [-a <architecture>] [-c <classe[s]>] [-C <configfile>] [-g
 <grml_name>] [-i <iso_name> ] [-o <output_directory>] [-r <release_name>] [-s
-<suite>] [-t <template_directory>] [-v <version_number>] [-bFhuVz]
+<suite>] [-t <template_directory>] [-v <version_number>] [-bFhquVz]
 
 CAUTION: Please check out <<current_state,the 'Current state of grml-live with
 squashfs-tools and kernel' section>> for details about current state of involved
@@ -121,6 +121,12 @@ inside this target directory, being: grml_cd (where the files for creating the
 ISO are located, including the compressed squashfs file), grml_chroot (the
 chroot system) and grml_isos (where the resulting ISO is stored).
 
+  -q::
+
+Build the ISO without (re-)creating the squashfs compressed file using mksquashfs.
+This option is useful if you just want to update parts outside the chroot in the ISO.
+Consider combining this option with the build-only option '-b'.
+
   -r **RELEASENAME**::
 
 Specify name of the release.
index 9263342..bfc853b 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -36,6 +36,7 @@ Usage: $PN [options, see as follows]
    -h                      display short usage information and exit
    -i <iso_name>           name of ISO
    -o <output_directory>   main output directory of the build process
+   -q                      skip mksquashfs
    -r                      release name
    -s <suite>              Debian suite; values: etch, lenny, sid
    -t <template_directory> place of the templates
@@ -208,7 +209,7 @@ fi
 # }}}
 
 # command line parsing {{{
-while getopts "a:C:c:g:i:o:r:s:t:v:bFuVz" opt; do
+while getopts "a:C:c:g:i:o:r:s:t:v:bFuqVz" opt; do
   case "$opt" in
     a) ARCH="$OPTARG" ;;
     b) BUILD_ONLY=1 ;;
@@ -221,6 +222,7 @@ while getopts "a:C:c:g:i:o:r:s:t:v:bFuVz" opt; do
        BUILD_OUTPUT="$OUTPUT/grml_cd"
        ISO_OUTPUT="$OUTPUT/grml_isos"
        ;;
+    q) SKIP_MKSQUASHFS=1 ;;
     r) RELEASENAME="$OPTARG" ;;
     s) SUITE="$OPTARG" ;;
     t) TEMPLATE_DIRECTORY="$OPTARG";;
@@ -294,6 +296,7 @@ if [ -z "$FORCE" ] ; then
    [ -n "$SQUASHFS_OPTIONS" ] && echo "  Using SQUASHFS_OPTIONS ${SQUASHFS_OPTIONS}"
    [ -n "$VERBOSE" ]       && echo "  Using VERBOSE mode."
    [ -n "$UPDATE" ]        && echo "  Executing UPDATE instead of fresh installation."
+   [ -n "$SKIP_MKSQUASHFS" ] && echo "  Skipping creation of SQUASHFS file."
    [ -n "$BUILD_ONLY" ]    && echo "  Executing BUILD_ONLY instead of fresh installation or UPDATE."
    echo
    echo -n "Is this ok for you? [y/N] "
@@ -604,6 +607,9 @@ fi
 if [ -f "$BUILD_OUTPUT"/live/${GRML_NAME}.squashfs -a -z "$UPDATE" -a -z "$BUILD_ONLY" ] ; then
    log "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'"
    ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ; eend 0
+elif [ -f "$BUILD_OUTPUT"/live/${GRML_NAME}.squashfs -a -n "$SKIP_MKSQUASHFS" ] ; then
+   log "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs' as requested"
+   ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs' as requested" ; eend 0
 else
    [ -d "$BUILD_OUTPUT"/live ] || mkdir "$BUILD_OUTPUT"/live
    # make sure we don't leave (even an empty) base.tgz: