65 lines
1.1 KiB
Bash
Executable file
65 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
COLUMNS=$(tput cols)
|
|
|
|
digit() {
|
|
echo -en "\U1FBF$1 "
|
|
}
|
|
|
|
print-time() {
|
|
TIMESTAMP="$1"
|
|
for ((i = 0; i < ${#TIMESTAMP}; i++)); do
|
|
digit "${TIMESTAMP:i:1}"
|
|
done
|
|
}
|
|
|
|
spacing() {
|
|
for ((i = 0; i < $1; i++)); do
|
|
printf "%s" "-"
|
|
done
|
|
}
|
|
|
|
col-len() {
|
|
if [[ -z "$2" ]]; then
|
|
echo "${#1}"
|
|
else
|
|
echo "$2"
|
|
fi
|
|
}
|
|
|
|
awk-color() {
|
|
printf 'BEGIN{
|
|
for (colnum = 0; colnum<columns+1; colnum++) {
|
|
%s;
|
|
r = 255-(i*255/columns);
|
|
g = (i*510/columns);
|
|
b = (i*255/columns);
|
|
if (g>255) g = 510-g;
|
|
printf "\\033[38;2;%%d;%%d;%%d;49m" , r,g,b
|
|
printf "%%s\\033[0m", substr(s,colnum+1,1);
|
|
}
|
|
printf "\\n";
|
|
}' "$1"
|
|
}
|
|
|
|
color-line() {
|
|
awk -v columns="$(col-len "$1" "$2")" -v s="$1" \
|
|
"$(awk-color 'i = (columns-colnum);')"
|
|
}
|
|
|
|
color-line-rev() {
|
|
awk -v columns="$(col-len "$1" "$2")" -v s="$1" \
|
|
"$(awk-color 'i = colnum;')"
|
|
}
|
|
|
|
color-word() {
|
|
printf "\033[1;9%dm%s\033[0m" "$((RANDOM % 7 + 1))" "$1"
|
|
}
|
|
|
|
epoch=$(date +'%s')
|
|
side=$(spacing $(((COLUMNS - (${#epoch} + 6)) / 2)))
|
|
|
|
printf "\n%s %s %s\n" \
|
|
"$(color-line "$side [")" \
|
|
"$(color-word "$epoch")" \
|
|
"$(color-line-rev "] $side")"
|