You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bpkg/lib/term/example.sh

99 lines
1.3 KiB
Bash

#!/bin/bash
## include
. term.sh
## data
declare -a data=( 0 2 3 1 3 3 3 8 2 12 4 2 4 3 )
## clean up everything
cleanup () {
## clear
term clear screen
## bring back cursor
term cursor show
return 0
}
## on SIGINT signal
onsigint () {
cleanup
exit 1
}
## clear screen
term clear screen
## position to top left
term move 0 0
## clear line
term clear line
## hide cursor
term cursor hide
## catch sigint
trap "onsigint" SIGINT
## main loop
{
let pad=3
let n=0
let w=($(tput cols))
let h=($(tput lines))
let x=0
let y=0
let len="${#data[@]}"
term clear screen
term move ${pad} 1
## y axis
for (( n = 0; n < (h - pad - 1); n += 2 )); do
term transition 0 2
term color gray
printf "."
done
y=( ${h} - 2 )
term move ${pad} ${y}
## x axis
for (( n = 0; n < (w - pad * 3); n += 6)); do
term color gray
printf "."
term transition 6 0
done
x=0
for (( i = 0; i < len; ++i )); do
let n="${data[$i]}"
while (( n-- )); do
if (( n < 0 )); then
break
fi
let a=( ${x} * 6 + ${pad} )
let b=( ${h} - ${n} + ${pad} )
#echo $a $b
term move ${a} ${b}
term reset
printf "█"
done
(( x++ ))
sleep .5
done
h=( ${h} - 1)
term move ${w} ${h}
}
## clean up terminal
cleanup
## exit
exit $?