r2726 - dists/trunk/live-initramfs/scripts

matth-guest at alioth.debian.org matth-guest at alioth.debian.org
Fri Aug 10 20:23:07 UTC 2007


Author: matth-guest
Date: 2007-08-10 20:23:07 +0000 (Fri, 10 Aug 2007)
New Revision: 2726

Modified:
   dists/trunk/live-initramfs/scripts/live
Log:
http tarball toram feature


Modified: dists/trunk/live-initramfs/scripts/live
===================================================================
--- dists/trunk/live-initramfs/scripts/live	2007-08-09 21:20:02 UTC (rev 2725)
+++ dists/trunk/live-initramfs/scripts/live	2007-08-10 20:23:07 UTC (rev 2726)
@@ -8,7 +8,7 @@
 echo "/root/usr/lib" >> /etc/ld.so.conf
 
 mountpoint="/live/image"
-LIVE_MEDIA_PATH="/live"
+LIVE_MEDIA_PATH="live"
 
 root_persistence="live-rw"
 home_persistence="home-rw"
@@ -55,7 +55,7 @@
 				set -x
 				;;
 
-                        fetch=*)
+			fetch=*)
                                 FETCH="${ARGUMENT#fetch=}"
                                 export FETCH
                                 ;;
@@ -405,13 +405,22 @@
         return 1
     fi
 
-    # begin copying..
+    # begin copying (or uncompressing)
     mkdir "${copyto}"
     echo "mount -t ${fstype} ${mount_options} ${dev} ${copyto}"
     mount -t "${fstype}" ${mount_options} "${dev}" "${copyto}"
-    cp -a ${copyfrom}/* ${copyto} # "cp -a" from busybox also copies hidden files
-    umount ${copyfrom}
-    mount -r --move ${copyto} ${copyfrom}
+
+    if [ "$extension" == "tgz" ]; then
+	cd "${copyto}"
+	tar zxf "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+	rm -f "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+	mount -r --move "${copyto}" "${rootmnt}"
+	cd "${OLDPWD}"
+    else
+	cp -a ${copyfrom}/* ${copyto} # "cp -a" from busybox also copies hidden files
+	umount ${copyfrom}
+	mount -r --move ${copyto} ${copyfrom}
+    fi
     rmdir ${copyto}
     return 0
 }
@@ -459,10 +468,18 @@
 
 do_httpmount() {
     rc=1
-    [ "$quiet" != "y" ] && log_begin_msg "Trying wget ${FETCH} -O ${mountpoint}/$(basename ${FETCH})"
-    mkdir -p "${mountpoint}/${LIVE_MEDIA_PATH}"
-    wget "${FETCH}" -O "${mountpoint}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
-    [ $? -eq 0 ] && rc=0
+    extension=`echo "${FETCH}" | sed 's/\(.*\)\.\(.*\)/\2/'`
+    case "${extension}" in
+	squashfs|tgz|tar)
+	    [ "$quiet" != "y" ] && log_begin_msg "Trying wget ${FETCH} -O ${mountpoint}/$(basename ${FETCH})"
+	    mkdir -p "${mountpoint}/${LIVE_MEDIA_PATH}"
+	    wget "${FETCH}" -O "${mountpoint}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+	    [ $? -eq 0 ] && rc=0
+	    [ "${extension}" == "tgz" ] && live_dest="ram"
+	    ;;
+	*)
+	    [ "$quiet" != "y" ] && log_begin_msg "Unrecognized archive extension for ${FETCH}"
+    esac
     return ${rc}
 }
 




More information about the debian-live-changes mailing list