[Fai-commit] r6499 - trunk/bin

Thomas Lange lange at alioth.debian.org
Sat Apr 23 10:17:00 UTC 2011


Author: lange
Date: 2011-04-23 10:16:48 +0000 (Sat, 23 Apr 2011)
New Revision: 6499

Modified:
   trunk/bin/make-fai-nfsroot
Log:
use xz compression for creating the base.tar file if available


Modified: trunk/bin/make-fai-nfsroot
===================================================================
--- trunk/bin/make-fai-nfsroot	2011-04-19 17:41:15 UTC (rev 6498)
+++ trunk/bin/make-fai-nfsroot	2011-04-23 10:16:48 UTC (rev 6499)
@@ -279,8 +279,15 @@
     call_with_stamp call_debootstrap $FAI_DEBOOTSTRAP
     $ROOTCMD apt-get clean
     rm -f $NFSROOT/etc/resolv.conf $NFSROOT/etc/hostname $NFSROOT/etc/udev/rules.d/70-persistent-net.rules
-    echo "Creating base.tgz"
-    tar --one-file-system -C $NFSROOT -cf - --exclude var/tmp/base.tgz --exclude 'var/lib/apt/lists/*_*' . | gzip > $NFSROOT/var/tmp/base.tgz
+    if [ $usexz -eq 0 ]; then
+	echo "Creating base.tgz"
+	tar --one-file-system -C $NFSROOT -cf - --exclude var/tmp/base.tgz --exclude 'var/lib/apt/lists/*_*' . | gzip > $NFSROOT/var/tmp/base.tgz
+    else
+	echo "Creating base.tar.xz"
+	tar --one-file-system -C $NFSROOT -cf $NFSROOT/var/tmp/base.tar --exclude var/tmp/base.tar --exclude 'var/lib/apt/lists/*_*' .
+	nice xz $NFSROOT/var/tmp/base.tar &
+	xzpid=$!
+    fi
     touch $NFSROOT/.THIS_IS_THE_FAI_NFSROOT
 }
 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -291,10 +298,22 @@
     fi
 
     if cd $NFSROOT ; then
+
       echo "Do not call debootstrap. Instead extract base.tgz"
       printf "Extracting $basetgz: "
-      tar -C $NFSROOT -zxpf "$basetgz" || die 1 "Error while extracting ${basetgz} in ${NFSROOT}."
-      cp -p "$basetgz" $NFSROOT/var/tmp/base.tgz
+
+      case $basetgz in
+	  *tar.gz|*.tgz)
+	      tar -C $NFSROOT -zxpf "$basetgz" || die 1 "Error while extracting ${basetgz} in ${NFSROOT}."
+	      cp -p "$basetgz" $NFSROOT/var/tmp/base.tar.gz
+	      ;;
+
+	    *tar.xz|*.txz)
+	      tar -C $NFSROOT -Jxpf "$basetgz" || die 1 "Error while extracting ${basetgz} in ${NFSROOT}."
+	      cp -p "$basetgz" $NFSROOT/var/tmp/base.tar.xz
+	      ;;
+	  esac
+
       touch $NFSROOT/.THIS_IS_THE_FAI_NFSROOT
       echo done
     fi
@@ -528,12 +547,18 @@
 # Create a new nfsroot
 [ ! -x "$(which debootstrap)" ] && die 1 "Can't find debootstrap command. Aborting."
 
+usexz=0
+if [ -x "$(which xz)" ]; then
+    usexz=1
+fi
+
 call_with_stamp create_nfsroot
 
 kernel_install
 run_hooks
 check_nfsroot
 umount_dirs
+# print warning if xz is still running
 echo "make-fai-nfsroot finished $merror."
 exit 0
 } 2>&1 | tee -a /var/log/fai/make-fai-nfsroot.log




More information about the Fai-commit mailing list