Created
December 26, 2023 07:44
-
-
Save krsntn/a15395ce958f861d102f6d90a8ebee5b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # tput is a command to manipulate the terminal, it can be used to change the color of text, apply effects, and generally brighten things up. | |
| trap "tput reset; tput cnorm; exit" 2 | |
| clear | |
| tput civis | |
| lin=2 | |
| col=$(($(tput cols) / 2)) | |
| c=$((col - 1)) | |
| est=$((c - 2)) | |
| color=0 | |
| # Set the text color to green to write the tree | |
| tput setaf 2 | |
| tput bold | |
| # Write the tree | |
| for ((i = 1; i < 40; i += 2)); do | |
| tput cup $lin $col | |
| for ((j = 1; j <= i; j++)); do | |
| echo -n \* | |
| done | |
| let lin++ | |
| let col-- | |
| done | |
| ## Set the color to brown for the trunk | |
| tput sgr0 | |
| tput setaf 130 | |
| # Write the Trunk in three lines | |
| for ((i = 1; i <= 3; i++)); do | |
| tput cup $((lin++)) $c | |
| echo 'mWm' | |
| done | |
| # Write a greeting | |
| tput setaf 93 | |
| tput bold | |
| tput cup $lin $((c - 15)) | |
| echo krsntn wishes you Merry Christmas | |
| tput cup $((lin + 1)) $((c - 11)) | |
| echo And a Happy New Year 2024 | |
| let c++ | |
| k=1 | |
| # Configure lights and decorations | |
| while true; do | |
| for ((i = 1; i <= 35; i++)); do | |
| # 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 + 10)) | |
| 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)) | |
| done | |
| k=$((k % 2 + 1)) | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment