aboutsummaryrefslogtreecommitdiffstats
path: root/functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'functions.sh')
-rw-r--r--functions.sh44
1 files changed, 28 insertions, 16 deletions
diff --git a/functions.sh b/functions.sh
index 8c5bd93..9a2e685 100644
--- a/functions.sh
+++ b/functions.sh
@@ -33,56 +33,68 @@ function cursorBack() {
function spinner() {
# make sure we use non-unicode character type locale
# (that way it works for any locale as long as the font supports the characters)
+ local numspinners=12
+
local LC_CTYPE=C
local pid=$1 # Process Id of the previous running command
- case $(($RANDOM % 12)) in
+ local spintype=$2
+
+ if [ -z "${spintype}" ] || [ "${spintype}" -ge "${numspinners}" ]; then
+ spintype=$((RANDOM % numspinners))
+ fi
+
+ case "${spintype}" in
0)
- local spin='⠁⠂⠄⡀⢀⠠⠐⠈'
- local charwidth=3
+ local spin='.oO0Oo'
+ local charwidth=1
;;
1)
local spin='-\|/'
local charwidth=1
;;
2)
- local spin="▁▂▃▄▅▆▇█▇▆▅▄▃▂▁"
+ local spin='⠁⠂⠄⡀⢀⠠⠐⠈'
local charwidth=3
;;
3)
- local spin="▉▊▋▌▍▎▏▎▍▌▋▊▉"
+ local spin="▁▂▃▄▅▆▇█▇▆▅▄▃▂▁"
local charwidth=3
;;
4)
- local spin='←↖↑↗→↘↓↙'
+ local spin="▉▊▋▌▍▎▏▎▍▌▋▊▉"
local charwidth=3
;;
5)
- local spin='▖▘▝▗'
+ local spin='←↖↑↗→↘↓↙'
local charwidth=3
;;
6)
- local spin='┤┘┴└├┌┬┐'
+ local spin='▖▘▝▗'
local charwidth=3
;;
7)
- local spin='◢◣◤◥'
+ local spin='┤┘┴└├┌┬┐'
local charwidth=3
;;
8)
- local spin='◰◳◲◱'
+ local spin='◢◣◤◥'
local charwidth=3
;;
9)
- local spin='◴◷◶◵'
+ local spin='◰◳◲◱'
local charwidth=3
;;
10)
- local spin='◐◓◑◒'
+ local spin='◴◷◶◵'
local charwidth=3
;;
11)
+ local spin='◐◓◑◒'
+ local charwidth=3
+ ;;
+ 12)
local spin='⣾⣽⣻⢿⡿⣟⣯⣷'
local charwidth=3
;;
@@ -91,14 +103,14 @@ function spinner() {
local i=0
tput civis # cursor invisible
tput bold setaf 7
- while kill -0 $pid 2>/dev/null; do
- local i=$(((i + $charwidth) % ${#spin}))
+ while kill -0 "$pid" 2>/dev/null; do
+ local i=$(((i + charwidth) % ${#spin}))
printf "%b" "${spin:$i:$charwidth}"
cursorBack 1
- sleep .1
+ sleep .2
done
tput cnorm
- wait $pid # capture exit code
+ wait "$pid" # capture exit code
return $?
}