diff --git a/files/archive_subfolders b/files/archive_subfolders index 161a6c8..f0b2e89 100755 --- a/files/archive_subfolders +++ b/files/archive_subfolders @@ -4,8 +4,13 @@ function helpexit() { echo Archive the subfolders of the current directory echo " -z Compress. If not passed, will ask after tar archive" + echo " -n No compression. Exit after tar archive" exit } +function fsize() { + echo -en "\e[2K\r" + ls -sh "$1" | xargs echo -n +} [[ "$1" = "-h" ]] && helpexit @@ -21,14 +26,18 @@ find . -mindepth 1 -maxdepth 1 -type d -print0 | sort | while read -r -d "" d; d echo -n $d tar cvf "$d.tar" $d > "$d.tar.txt" & PID=$! - while kill -0 "$PID" >/dev/null 2>&1; do - sleep 5 - echo -en "\r" - ls -sh "$d.tar" | xargs echo -n + while kill -0 "$PID" &>/dev/null; do + for i in {1..5}; do + sleep $i; kill -0 "$PID" &>/dev/null || break 2 + done + fsize "$d.tar" done - echo -en "\r" - ls -sh "$d.tar" + fsize "$d.tar" + echo '' done +[[ "$1" = "-n" ]] && { + exit +} [[ "$1" = "-z" ]] || { echo 'Proceed to compress? to quit' read foo @@ -39,11 +48,12 @@ find . -mindepth 1 -maxdepth 1 -type d -print0 | sort | while read -r -d "" d; d gzip "$d.tar" PID=$! while kill -0 "$PID" >/dev/null 2>&1; do - sleep 5 - echo -en "\r" - ls -sh "$d.tar" | xargs echo -n + for i in {1..5}; do + sleep $i; kill -0 "$PID" &>/dev/null || break 2 + done + fsize "$d.tar.gz" done - echo -en "\r" - ls -sh "$d.tar" + fsize "$d.tar.gz" + echo '' done