#!/bin/sh # Written by Michal Kosmulski # This script is hereby put in the public domain. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Display a dialog box with a progress bar showing how much of a file # has been downloaded. # Parameters: # $1 file name # $2 final file size (in bytes) # Uses zenity if [ $# != 2 ]; then echo "Usage:" echo "$0 file_name final_size" exit 1; fi name="$1" final_size="$2" size=0 ( while (( size < final_size )); do if [ -f "$name" ]; then size=`ls -l "$name" | awk '{print $5}'`; else size=0 fi echo -e '#'"${name}: ${size} of ${final_size}"; echo -e "100*${size}/${final_size};\nquit\n" | bc; sleep 1; done echo '#'"${name}: Finished downloading - ${size} of ${final_size}"; ) | zenity --title="Downloading file ${name}" --progress --percentage=0