summaryrefslogtreecommitdiff
path: root/scripts/snowjob
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/snowjob')
-rwxr-xr-xscripts/snowjob40
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/snowjob b/scripts/snowjob
new file mode 100755
index 0000000..6c98251
--- /dev/null
+++ b/scripts/snowjob
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+LINES=$(tput lines)
+COLUMNS=$(tput cols)
+
+declare -A snowflakes
+declare -A lastflakes
+
+clear
+
+function move_flake() {
+ i="$1"
+
+ if [ "${snowflakes[$i]}" = "" ] || [ "${snowflakes[$i]}" = "$LINES" ]; then
+ snowflakes[$i]=0
+ else
+ if [ "${lastflakes[$i]}" != "" ]; then
+ printf "\033[%s;%sH \033[1;1H " ${lastflakes[$i]} $i
+ fi
+ fi
+
+ printf "\033[%s;%sH\u274$[($RANDOM%6)+3]\033[1;1H" ${snowflakes[$i]} $i
+
+ lastflakes[$i]=${snowflakes[$i]}
+ snowflakes[$i]=$((${snowflakes[$i]}+1))
+}
+
+while :
+do
+ i=$(($RANDOM % $COLUMNS))
+
+ move_flake $i
+
+ for x in "${!lastflakes[@]}"
+ do
+ move_flake "$x"
+ done
+
+ sleep 0.1
+done \ No newline at end of file