Update docs regarding /etc/grml/fai/apt/sources.list; replace unstable SUITE with sid
[grml-live.git] / grml-live
index c1b1cb3..6beb3ba 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -14,7 +14,7 @@ export LC_ALL=C
 # exit on any error:
 set -e
 
-GRML_LIVE_VERSION='0.9.8'
+GRML_LIVE_VERSION='0.9.9'
 PN="$(basename $0)"
 CMDLINE="$0 $@"
 ISO_DATE="$(date +%Y-%m-%d)"
@@ -39,7 +39,7 @@ Usage: $PN [options, see as follows]
    -o <output_directory>   main output directory of the build process
    -q                      skip mksquashfs
    -r <release_name<       release name
-   -s <suite>              Debian suite; values: etch, lenny, sid
+   -s <suite>              Debian suite; values: etch, lenny, squeeze, sid
    -t <template_directory> place of the templates
    -u                      update existing chroot instead of rebuilding it from scratch
    -v <version_number>     specify version number of the release
@@ -347,21 +347,26 @@ elif [ -n "$GRML_LIVE_SOURCES" ] ; then
 fi
 
 if [ -n "$FAI_DEBOOTSTRAP" ] ; then
-   sed -i "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" $NFSROOT_CONF
+   sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
 fi
 
 # does this suck? YES!
 if [ -n "$SUITE" ] ; then
 
+   # /usr/share/debootstrap/scripts/unstable does not exist, instead use 'sid':
+   case $SUITE in
+      unstable) SUITE='sid' ;;
+   esac
+
+   DIST=" etch\| stable\| lenny\| squeeze\| testing\| sid\| unstable"
+   sed "s/\(deb .\+\)\([ \t]*\) $DIST\([ \t]*\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list | sponge /etc/grml/fai/apt/sources.list
    for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" ; do
        if [ -n "$file" ] ; then
-          sed -i "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF
-          DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
-          sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $file
+          sed "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF | sponge $LIVE_CONF
+          sed "s/\(deb .\+\)\([ \t]*\) $DIST\([ \t]*\)\(main \)/\1\2 $SUITE \3\4/" "$file" | sponge "$file"
        fi
    done
 
-   sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list
    # notice: activate grml-live pool only if we are building against unstable:
    if grep -qe unstable -qe sid /etc/grml/fai/apt/sources.list ; then
       grep -q 'grml-live.*main' /etc/grml/fai/apt/sources.list || \
@@ -369,23 +374,24 @@ if [ -n "$SUITE" ] ; then
            sed 's/grml-stable/grml-live/' >> /etc/grml/fai/apt/sources.list
    else
       grep -q 'grml-live.*main' /etc/grml/fai/apt/sources.list && \
-      sed -i 's/.*grml-live.*/# removed grml-live repository/' /etc/grml/fai/apt/sources.list
+      sed 's/.*grml-live.*/# removed grml-live repository/' /etc/grml/fai/apt/sources.list | sponge /etc/grml/fai/apt/sources.list
    fi
 
    for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" ; do
        if [ -n "$file" ] ; then
-          sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file"
+          sed "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file" | sponge "$file"
        fi
    done
-   sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $NFSROOT_CONF
+
+   sed "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
 fi
 
 # set $ARCH
 [ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
-if grep -q -- 'FAI_DEBOOTSTRAP_OPTS.*--arch' $NFSROOT_CONF ; then
-   sed -i "s/--arch [a-z0-9]* /--arch $ARCH /" $NFSROOT_CONF
+if grep -q -- 'FAI_DEBOOTSTRAP_OPTS.*--arch' "$NFSROOT_CONF" ; then
+   sed "s/--arch [a-z0-9]* /--arch $ARCH /" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
 else
-   sed -i "s|FAI_DEBOOTSTRAP_OPTS=\"\(.*\)|FAI_DEBOOTSTRAP_OPTS=\"--arch $ARCH \1|" $NFSROOT_CONF
+   sed "s|FAI_DEBOOTSTRAP_OPTS=\"\(.*\)|FAI_DEBOOTSTRAP_OPTS=\"--arch $ARCH \1|" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
 fi
 # }}}
 
@@ -702,12 +708,17 @@ else
               -b $BOOT_FILE \
               -o "${ISO_OUTPUT}/${ISO_NAME}" . ; RC=$?
 
-      # generate md5sum of ISO if we are using class 'RELEASE':
+      # generate md5sum and sha1sum of ISO if we are using class 'RELEASE':
       case $CLASSES in *RELEASE*)
          [ "$RC" = 0 ] && \
-         ( cd $ISO_OUTPUT && \
-         md5sum ${ISO_NAME} > ${ISO_NAME}.md5 && \
-         touch -r ${ISO_NAME} ${ISO_NAME}.md5 )
+         (
+           if cd $ISO_OUTPUT ; then
+             md5sum ${ISO_NAME} > ${ISO_NAME}.md5 && \
+             touch -r ${ISO_NAME} ${ISO_NAME}.md5
+             sha1sum ${ISO_NAME} > ${ISO_NAME}.sha1 && \
+             touch -r ${ISO_NAME} ${ISO_NAME}.sha1
+           fi
+         )
          ;;
       esac