summaryrefslogtreecommitdiff
path: root/scripts/install-system
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-05-12 13:36:16 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-05-12 14:34:28 -0700
commit7d02fa70ca8207ebd6111827691735cd9d980c30 (patch)
tree68aea9cd84feaadb20fac94d3490f6651bdae6bf /scripts/install-system
parent5aafb72b269d409500258f0b65f3e635d99712b7 (diff)
downloadvyatta-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-xscripts/install-system27
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