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
# Spinner
for i in {1..14} ; do
for i in {1..16} ; do
boxborder "spinner$i demo"
set_spinner spinner$i
spin "sleep 3"

View file

@ -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