Skip to content

Instantly share code, notes, and snippets.

@iamtew
Forked from yarlson/super_spinner.bash
Created June 14, 2022 19:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iamtew/dd29a14723e14b0633581ea2d90c5c6d to your computer and use it in GitHub Desktop.
Save iamtew/dd29a14723e14b0633581ea2d90c5c6d to your computer and use it in GitHub Desktop.
Super Spinner: An Emoji-based spinner for bash
###
# Super Spinner
# An emoji-based spinner β€” because ASCII is boring.
#
# Usage:
# $ COMMAND & superSpinner $! "Message"
#
# Example:
# $ sleep 5 & superSpinner $! "Sleeping for 5 seconds"
#
# Output:
# $ πŸ• Sleeping for 5 seconds...
# $ πŸ’₯ Sleeping for 5 seconds.... Finished!
###
superSpinner() {
local PID=$1
local CLOCK_STR=("πŸ•" "πŸ•‘" "πŸ•’" "πŸ•“" "πŸ•”" "πŸ••" "πŸ•–" "πŸ•—" "πŸ•˜" "πŸ•™" "πŸ•š" "πŸ•›")
local INDEX=0
tput civis
echo -ne "\r"
while kill -0 "$PID" 2> /dev/null ; do
echo -ne "${CLOCK_STR[$INDEX]} $2...\r"
INDEX=$(( INDEX == 11 ? 0 : INDEX + 1 ))
sleep 0.08333333333
done
echo -ne "\rπŸ’₯ $2.... Finished!"
echo
tput cnorm
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment