summaryrefslogtreecommitdiffstats
path: root/large.sh
diff options
context:
space:
mode:
Diffstat (limited to 'large.sh')
-rwxr-xr-xlarge.sh194
1 files changed, 194 insertions, 0 deletions
diff --git a/large.sh b/large.sh
new file mode 100755
index 0000000..248f0d8
--- /dev/null
+++ b/large.sh
@@ -0,0 +1,194 @@
+#!/bin/sh
+
+large_0() {
+ printf '%s\n' \
+ ' [XX] ' \
+ '[] [] ' \
+ '[] [] ' \
+ '[] [] ' \
+ '[] [] ' \
+ '[] [] ' \
+ ' [XX] '
+}
+
+large_1() {
+ printf '%s\n' \
+ ' [XX] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [XXXX] '
+}
+
+large_2() {
+ printf '%s\n' \
+ ' [XX] ' \
+ '[] [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ '[] ' \
+ '[XXXXXX] '
+}
+
+large_3() {
+ printf '%s\n' \
+ '[XXXX] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [XXX] ' \
+ ' [] ' \
+ ' [] ' \
+ '[XXXX] '
+}
+
+large_4() {
+ printf '%s\n' \
+ '[] [] ' \
+ '[] [] ' \
+ '[] [] ' \
+ '[XXXXXX] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] '
+}
+
+large_5() {
+ printf '%s\n' \
+ '[XXXXX] ' \
+ '[] ' \
+ '[] ' \
+ '[XXXX] ' \
+ ' [] ' \
+ ' [] ' \
+ '[XXXX] '
+}
+
+large_6() {
+ printf '%s\n' \
+ ' [XXX] ' \
+ '[] ' \
+ '[] ' \
+ '[XXXX] ' \
+ '[] [] ' \
+ '[] [] ' \
+ ' [XX] '
+}
+
+large_7() {
+ printf '%s\n' \
+ '[XXXXXX] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [] '
+}
+
+large_8() {
+ printf '%s\n' \
+ ' [XX] ' \
+ '[] [] ' \
+ '[] [] ' \
+ ' [XX] ' \
+ '[] [] ' \
+ '[] [] ' \
+ ' [XX] '
+}
+
+large_9() {
+ printf '%s\n' \
+ ' [XX] ' \
+ '[] [] ' \
+ '[] [] ' \
+ ' [XXXX] ' \
+ ' [] ' \
+ ' [] ' \
+ ' [XXX] '
+}
+
+large_colon() {
+ printf '%s\n' \
+ ' ' \
+ ' ' \
+ ' [] ' \
+ ' ' \
+ ' ' \
+ ' [] ' \
+ ' '
+}
+
+printf '#define LARGE_Y %i\n' $(large_0 | wc -l)
+printf '#define LARGE_XD %i\n' $(large_0 | head -n 1 | tr -d '\n' | wc -c)
+printf '#define LARGE_XC %i\n' $(large_colon | head -n 1 | tr -d '\n' | wc -c)
+
+printf '#define SMALL_Y %i\n' $(expr \( $(large_0 | wc -l) + 1 \) / 2)
+printf '#define SMALL_XD %i\n' $(expr \( $(large_0 | head -n 1 | tr -d '\n' | wc -c) + 1 \) / 2)
+printf '#define SMALL_XC %i\n' $(expr \( $(large_colon | head -n 1 | tr -d '\n' | wc -c) + 1 \) / 2)
+
+for c in 0 1 2 3 4 5 6 7 8 9 colon; do
+ printf 'static const char *large_%s[] = {\n' $c
+ large_$c | \
+ sed -e 's/X/ /g' -e 's/\[/\\033\[7m /g' -e 's/\]/ \\033\[m/g' | \
+ sed -e 's/^/"/' -e 's/$/",/' | \
+ sed '$s/,$//'
+ printf '};\n'
+
+ printf 'static const char *small_%s[] = {\n' $c
+ (
+ if expr $(large_$c | wc -l) % 2 >/dev/null; then
+ printf '%*.s\n' $(expr \( $(large_0 | head -n 1 | tr -d '\n' | wc -c) + 1 \) / 2 \* 2) ''
+ fi
+ if expr $(large_$c | head -n 1 | tr -d '\n' | wc -c) % 2 >/dev/null; then
+ large_$c | tr '][' XX | sed 's/$/ /g'
+ else
+ large_$c | tr '][' XX
+ fi
+ ) | tr ' \n' ., | sed 's/\([^,]*\),\([^,]*\),/:\1:\2:\n/g' | while read line; do
+ high="$(printf '%s\n' "$line" | cut -d : -f 2)"
+ low="$(printf '%s\n' "$line" | cut -d : -f 3)"
+ while test -n "$high"; do
+ block="$(printf '%s\n' "$high" | colrm 3)$(printf '%s\n' "$low" | colrm 3)"
+ high="$(printf '%s\n' "$high" | colrm 1 2)"
+ low="$(printf '%s\n' "$low" | colrm 1 2)"
+ if test "$block" = '....'; then
+ printf ' '
+ elif test "$block" = '...X'; then
+ printf '▗'
+ elif test "$block" = '..X.'; then
+ printf '▖'
+ elif test "$block" = '..XX'; then
+ printf '▄'
+ elif test "$block" = '.X..'; then
+ printf '▝'
+ elif test "$block" = '.X.X'; then
+ printf '▐'
+ elif test "$block" = '.XX.'; then
+ printf '▞'
+ elif test "$block" = '.XXX'; then
+ printf '▟'
+ elif test "$block" = 'X...'; then
+ printf '▘'
+ elif test "$block" = 'X..X'; then
+ printf '▚'
+ elif test "$block" = 'X.X.'; then
+ printf '▌'
+ elif test "$block" = 'X.XX'; then
+ printf '▙'
+ elif test "$block" = 'XX..'; then
+ printf '▀'
+ elif test "$block" = 'XX.X'; then
+ printf '▜'
+ elif test "$block" = 'XXX.'; then
+ printf '▛'
+ elif test "$block" = 'XXXX'; then
+ printf '█'
+ fi
+ done
+ printf '\n'
+ done | sed -e 's/^/"/' -e 's/$/",/' | sed '$s/,$//'
+ printf '};\n'
+done