tools/livecd-iso-to-disk.sh |   42 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 36 insertions(+), 6 deletions(-)

New commits:
commit 54c53cc8d24eb89e4a75df3d67f00a0152fa0cb6
Author: Jasper O'neal Hartline <[email protected]>
Date:   Sat Sep 11 13:17:30 2010 -0500

    Display progress information when copying image to usb.
    
    Signed-off-by: Bruno Wolff III <[email protected]>

diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh
index e12feb5..007348a 100755
--- a/tools/livecd-iso-to-disk.sh
+++ b/tools/livecd-iso-to-disk.sh
@@ -304,6 +304,36 @@ detectisotype() {
     exitclean
 }
 
+cp_p() {
+       strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
+       | awk '{
+       count += $NF
+       if (count % 10 == 0) {
+               percent = count / total_size * 100
+               printf "%3d%% [", percent
+               for (i=0;i<=percent;i++)
+                       printf "="
+                       printf ">"
+                       for (i=percent;i<100;i++)
+                               printf " "
+                               printf "]\r"
+                       }
+               }
+               END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
+}
+
+copyFile() {
+       if [ -x /usr/bin/gvfs-copy ]; then
+           gvfs-copy -p "$1" "$2"
+           return
+       fi
+       if [ -x /usr/bin/strace -a -x /bin/awk ]; then
+           cp_p "$1" "$2"
+           return
+       fi
+       cp "$1" "$2"
+}
+
 cryptedhome=1
 keephome=1
 homesizemb=0
@@ -575,15 +605,15 @@ if [ -z "$skipcopy" ] && [ "$isotype" = "live" ]; then
   [ -n "$keephome" -a -f "$USBMNT/$HOMEFILE" ] && mv $USBMNT/$HOMEFILE 
$USBMNT/$LIVEOS/$HOMEFILE
   if [ -n "$skipcompress" -a -f $CDMNT/LiveOS/squashfs.img ]; then
       mount -o loop $CDMNT/LiveOS/squashfs.img $CDMNT || exitclean
-      cp $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || (umount $CDMNT 
; exitclean)
+      copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || (umount 
$CDMNT ; exitclean)
       umount $CDMNT
   elif [ -f $CDMNT/LiveOS/squashfs.img ]; then
-      cp $CDMNT/LiveOS/squashfs.img $USBMNT/$LIVEOS/squashfs.img || exitclean
+      copyFile $CDMNT/LiveOS/squashfs.img $USBMNT/$LIVEOS/squashfs.img || 
exitclean
   elif [ -f $CDMNT/LiveOS/ext3fs.img ]; then
-      cp $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || exitclean
+      copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || exitclean
   fi
   if [ -f $CDMNT/LiveOS/osmin.img ]; then
-      cp $CDMNT/LiveOS/osmin.img $USBMNT/$LIVEOS/osmin.img || exitclean
+      copyFile $CDMNT/LiveOS/osmin.img $USBMNT/$LIVEOS/osmin.img || exitclean
   fi
 fi
 
@@ -591,8 +621,8 @@ fi
 if [ "$isotype" = "installer" ] && [ -z "$skipcopy" ]; then
       echo "Copying DVD image to USB stick"
       mkdir -p $USBMNT/images/
-      cp $CDMNT/images/install.img $USBMNT/images/install.img || exitclean
-      cp $ISO $USBMNT/
+      copyFile $CDMNT/images/install.img $USBMNT/images/install.img || 
exitclean
+      copyFile $ISO $USBMNT/
 fi
 
 cp $CDMNT/isolinux/* $USBMNT/$SYSLINUXPATH


--
livecd mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/livecd

Reply via email to