diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-05-12 13:36:16 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-05-12 14:34:28 -0700 |
commit | 7d02fa70ca8207ebd6111827691735cd9d980c30 (patch) | |
tree | 68aea9cd84feaadb20fac94d3490f6651bdae6bf /scripts/install-system | |
parent | 5aafb72b269d409500258f0b65f3e635d99712b7 (diff) | |
download | vyatta-cfg-quagga-7d02fa70ca8207ebd6111827691735cd9d980c30.tar.gz vyatta-cfg-quagga-7d02fa70ca8207ebd6111827691735cd9d980c30.zip |
Show progress bar when copying filesystem
Better to show real progress than simple spinning wheel.
Diffstat (limited to 'scripts/install-system')
-rwxr-xr-x | scripts/install-system | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/scripts/install-system b/scripts/install-system index 06deb0a3..4f92ca37 100755 --- a/scripts/install-system +++ b/scripts/install-system @@ -890,6 +890,23 @@ create_partitions() { fi } +# Copy directory with pretty progress bar +copy_filesystem() { + cp -r -v --preserve=all "$@" | awk '{ + ++files + if ((files % 10) == 0) { + percent = files / total_files * 100 + printf "%3d%% [", percent + for (i=0;i<percent; i+=2) + printf "=" + printf ">" + for (;i<100;i+=2) + printf " " + printf "]\r" + } + }' total_files=$(find "$@" | wc -l) +} + # Install the root filesystem # $1 is the partition to install on install_root_filesystem () { @@ -914,8 +931,7 @@ install_root_filesystem () { fi if [ -z $UNION ]; then - echo -n "Copying system image files to /dev/$ROOT_PARTITION: " - progress_indicator start + echo "Copying system files to /dev/$ROOT_PARTITION: " # Mount the squashfs for copying output=$(mkdir -p /mnt/squashfs) if [ -f /live/image/live/filesystem.squashfs ]; then @@ -936,12 +952,13 @@ install_root_filesystem () { exit 1 fi - output=$(cp --preserve=all -R /mnt/squashfs/* $rootfsdir/) + echo "Copying /mnt/squashfs/* to $rootfsddir" >>$INSTALL_LOG + copy_filesystem /mnt/squashfs/* $rootfsdir 2>>$INSTALL_LOG status=$? - + echo + if [ "$status" != 0 ]; then echo -e "Error trying to copy the rootfs.\nPlease see install log for more details.\nExiting..." - echo -e "Error trying to copy the rootfs.\ncp -pR /mnt/squashfs/* $rootfsdir/\n$output" >> $INSTALL_LOG exit 1 fi |