You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.4 KiB
71 lines
1.4 KiB
#!/bin/bash |
|
trap "tput reset; tput cnorm; exit" 2 |
|
clear |
|
tput civis |
|
lin=2 |
|
col=$(($(tput cols) / 2)) |
|
c=$((col-1)) |
|
est=$((c-2)) |
|
color=0 |
|
tput setaf 2; tput bold |
|
|
|
# Tree |
|
for ((i=1; i<20; i+=2)) |
|
{ |
|
tput cup $lin $col |
|
for ((j=1; j<=i; j++)) |
|
{ |
|
echo -n \* |
|
} |
|
let lin++ |
|
let col-- |
|
} |
|
|
|
tput sgr0; tput setaf 3 |
|
|
|
# Trunk |
|
for ((i=1; i<=2; i++)) |
|
{ |
|
tput cup $((lin++)) $c |
|
echo 'mWm' |
|
} |
|
new_year=$(date +'%Y') |
|
let new_year++ |
|
tput setaf 1; tput bold |
|
tput cup $lin $((c - 8)); echo MERRY CHRISTMAS IRM |
|
tput cup $((lin + 1)) $((c - 12)); echo And lots of HACKING in $new_year |
|
let c++ |
|
k=1 |
|
|
|
# Lights and decorations |
|
while true; do |
|
for ((i=1; i<=35; i++)) { |
|
# Turn off the lights |
|
[ $k -gt 1 ] && { |
|
tput setaf 2; tput bold |
|
tput cup ${line[$[k-1]$i]} ${column[$[k-1]$i]}; echo \* |
|
unset line[$[k-1]$i]; unset column[$[k-1]$i] # Array cleanup |
|
} |
|
|
|
li=$((RANDOM % 9 + 3)) |
|
start=$((c-li+2)) |
|
co=$((RANDOM % (li-2) * 2 + 1 + start)) |
|
tput setaf $color; tput bold # Switch colors |
|
tput cup $li $co |
|
echo o |
|
line[$k$i]=$li |
|
column[$k$i]=$co |
|
color=$(((color+1)%8)) |
|
# Flashing text |
|
sh=-1 |
|
for l in H A C K I N G |
|
do |
|
tput cup $((lin+1)) $((c+sh)) |
|
echo $l |
|
let sh++ |
|
sleep 0.01 |
|
done |
|
} |
|
k=$((k % 2 + 1)) |
|
done |
|
reset
|
|
|