diff --git a/files/fastdu b/files/fastdu index 7c2beef..31d24bc 100755 --- a/files/fastdu +++ b/files/fastdu @@ -6,6 +6,7 @@ function helpexit() { echo " -h Human readable units" echo " -s Summary mode, otherwise each argument folder calculated separate" echo " -c Count files instead of summarizing sizes" + echo " -a Display animation while counting" echo " --help This help" exit } @@ -45,6 +46,15 @@ function siprefix() { }' || return $? } +function animate() { + CHARS="|/-__-\\" + i=0 + while true; do + sleep 0.2 + printf "\r%s\r" ${CHARS:$i:1} >&2 + i=$(( (i + 1)%${#CHARS} )) + done +} function processfolder() { if [[ "$COUNT" -eq 1 ]]; then @@ -77,12 +87,17 @@ for (( i=1; i<=$#; i++ )); do [[ "${!i}" = "-h" ]] && { HUMAN=1; continue; } [[ "${!i}" = "-c" ]] && { COUNT=1; continue; } [[ "${!i}" = "-s" ]] && { SUMMARY=1; continue; } + [[ "${!i}" = "-a" ]] && { ANIMATE=1; continue; } what+=( "${!i}" ) done [[ -z "${what[@]}" ]] && what="." # If only one entry, dont print the name [[ "${#what[@]}" -eq 1 ]] && SUMMARY=1 +if [[ "$ANIMATE" -eq 1 ]]; then + animate & +fi + if [[ "$SUMMARY" -eq 1 ]]; then # Display one line processfolder "${what[@]}" @@ -97,4 +112,7 @@ else printf "$FORMAT" "$( processfolder "$dir" )" "$dir" done fi +if [[ "$ANIMATE" -eq 1 ]]; then + kill %1 +fi