From 93850ae1538c370dcdf8d6c39403292975077caa Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Thu, 9 Mar 2023 13:32:08 -0800 Subject: [PATCH] added functions to manually start and stop spinner, new spinners --- demo.sh | 2 +- functions | 51 +++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/demo.sh b/demo.sh index 4bb2434..784e0ee 100755 --- a/demo.sh +++ b/demo.sh @@ -112,7 +112,7 @@ for option in "${my_options[@]}"; do done # Spinner -for i in {1..14} ; do +for i in {1..16} ; do boxborder "spinner$i demo" set_spinner spinner$i spin "sleep 3" diff --git a/functions b/functions index 899d479..3e095d5 100644 --- a/functions +++ b/functions @@ -2,10 +2,10 @@ # pyr0ball script functions library # Initial Vars -functionsrev=1.1.6 +functionsrev=1.1.7 scriptname="${0##*/}" rundir="${0%/*}" -rundir_absolute=$(cd `dirname $0` && pwd) +rundir_absolute=$(cd $rundir && pwd) runuser="$(whoami)" pretty_date="$(date +%Y-%m-%d_%H-%M-%S)" short_date="$(date +%Y-%m-%d)" @@ -589,7 +589,7 @@ set_spinner() { ;; spinner4) FRAME="⇐⇖⇑⇗⇒⇘⇓⇙" - FRAME_INTERVAL=0.15 + FRAME_INTERVAL=0.1 ;; spinner5) FRAME="◇◈◆◈" @@ -597,11 +597,11 @@ set_spinner() { ;; spinner6) FRAME="⚬⚭⚮⚯⚮⚭" - FRAME_INTERVAL=0.2 + FRAME_INTERVAL=0.15 ;; spinner7) FRAME="░▒▓█▓▒" - FRAME_INTERVAL=0.25 + FRAME_INTERVAL=0.2 ;; spinner8) FRAME="☉◎◉◎☉" @@ -617,31 +617,38 @@ set_spinner() { ;; spinner11) FRAME="←↖↑↗→↘↓↙" - FRAME_INTERVAL=0.25 + FRAME_INTERVAL=0.1 ;; spinner12) FRAME="▖▘▝▗" - FRAME_INTERVAL=0.25 + FRAME_INTERVAL=0.2 ;; spinner13) FRAME="▙▛▜▟" - FRAME_INTERVAL=0.25 + FRAME_INTERVAL=0.2 ;; spinner14) FRAME="▚▞" FRAME_INTERVAL=0.5 ;; + spinner15) + FRAME="☰☱☳☶☵☳☶☴" + FRAME_INTERVAL=0.1 + ;; + spinner16) + FRAME="▤▧▥▨" + FRAME_INTERVAL=0.2 + ;; *) - echo "No spinner is defined for $1" - exit 1 + warn "No spinner is defined for $1" esac } spin() { + CMD=$@ tput civis sc=0 - CMD=$@ - $CMD & + $CMD & _PID=$! while [ -d /proc/$_PID ] ; do for i in "${FRAME[@]}" ; do @@ -655,6 +662,26 @@ spin() { tput cnorm } +spinstart() { + sstop=false + tput civis + sc=0 + while [[ $sstop == false ]] ; do + for i in "${FRAME[@]}" ; do + printf "\b${FRAME:sc++:1}" + ((sc==${#FRAME})) && sc=0 + #echo -ne "\b${FRAME[$i]}" + sleep $FRAME_INTERVAL + done + done +} + +spinstop() { + export sstop=true + printf "\r\n" + tput cnorm +} + # https://github.com/fearside/ProgressBar/blob/master/progressbar.sh progress-bar() { # Process data