added functions to manually start and stop spinner, new spinners

This commit is contained in:
pyr0ball 2023-03-09 13:32:08 -08:00
parent 027b29aa5a
commit 93850ae153
2 changed files with 40 additions and 13 deletions

View file

@ -112,7 +112,7 @@ for option in "${my_options[@]}"; do
done done
# Spinner # Spinner
for i in {1..14} ; do for i in {1..16} ; do
boxborder "spinner$i demo" boxborder "spinner$i demo"
set_spinner spinner$i set_spinner spinner$i
spin "sleep 3" spin "sleep 3"

View file

@ -2,10 +2,10 @@
# pyr0ball script functions library # pyr0ball script functions library
# Initial Vars # Initial Vars
functionsrev=1.1.6 functionsrev=1.1.7
scriptname="${0##*/}" scriptname="${0##*/}"
rundir="${0%/*}" rundir="${0%/*}"
rundir_absolute=$(cd `dirname $0` && pwd) rundir_absolute=$(cd $rundir && pwd)
runuser="$(whoami)" runuser="$(whoami)"
pretty_date="$(date +%Y-%m-%d_%H-%M-%S)" pretty_date="$(date +%Y-%m-%d_%H-%M-%S)"
short_date="$(date +%Y-%m-%d)" short_date="$(date +%Y-%m-%d)"
@ -589,7 +589,7 @@ set_spinner() {
;; ;;
spinner4) spinner4)
FRAME="⇐⇖⇑⇗⇒⇘⇓⇙" FRAME="⇐⇖⇑⇗⇒⇘⇓⇙"
FRAME_INTERVAL=0.15 FRAME_INTERVAL=0.1
;; ;;
spinner5) spinner5)
FRAME="◇◈◆◈" FRAME="◇◈◆◈"
@ -597,11 +597,11 @@ set_spinner() {
;; ;;
spinner6) spinner6)
FRAME="⚬⚭⚮⚯⚮⚭" FRAME="⚬⚭⚮⚯⚮⚭"
FRAME_INTERVAL=0.2 FRAME_INTERVAL=0.15
;; ;;
spinner7) spinner7)
FRAME="░▒▓█▓▒" FRAME="░▒▓█▓▒"
FRAME_INTERVAL=0.25 FRAME_INTERVAL=0.2
;; ;;
spinner8) spinner8)
FRAME="☉◎◉◎☉" FRAME="☉◎◉◎☉"
@ -617,31 +617,38 @@ set_spinner() {
;; ;;
spinner11) spinner11)
FRAME="←↖↑↗→↘↓↙" FRAME="←↖↑↗→↘↓↙"
FRAME_INTERVAL=0.25 FRAME_INTERVAL=0.1
;; ;;
spinner12) spinner12)
FRAME="▖▘▝▗" FRAME="▖▘▝▗"
FRAME_INTERVAL=0.25 FRAME_INTERVAL=0.2
;; ;;
spinner13) spinner13)
FRAME="▙▛▜▟" FRAME="▙▛▜▟"
FRAME_INTERVAL=0.25 FRAME_INTERVAL=0.2
;; ;;
spinner14) spinner14)
FRAME="▚▞" FRAME="▚▞"
FRAME_INTERVAL=0.5 FRAME_INTERVAL=0.5
;; ;;
spinner15)
FRAME="☰☱☳☶☵☳☶☴"
FRAME_INTERVAL=0.1
;;
spinner16)
FRAME="▤▧▥▨"
FRAME_INTERVAL=0.2
;;
*) *)
echo "No spinner is defined for $1" warn "No spinner is defined for $1"
exit 1
esac esac
} }
spin() { spin() {
CMD=$@
tput civis tput civis
sc=0 sc=0
CMD=$@ $CMD &
$CMD &
_PID=$! _PID=$!
while [ -d /proc/$_PID ] ; do while [ -d /proc/$_PID ] ; do
for i in "${FRAME[@]}" ; do for i in "${FRAME[@]}" ; do
@ -655,6 +662,26 @@ spin() {
tput cnorm 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 # https://github.com/fearside/ProgressBar/blob/master/progressbar.sh
progress-bar() { progress-bar() {
# Process data # Process data