#!/usr/bin/env sh

# Desc:   POSIX sh script to display color schemes in block-form.
# Author: Harry Kurn <alternate-se7en@pm.me>
# URL:    https://github.com/owl4ce/dotfiles/tree/ng/EXTRA_JOYFUL/.local/bin/bloks

# SPDX-License-Identifier: ISC

# shellcheck disable=SC2183

# Speeds up script-execution by using C or POSIX locale instead of UTF-?? locales.
export LANG='POSIX'

# ANSI color escape sequences.
RESET='\033[0m' \
BLACK='\033[0;30m' \
BLACK_BOLD='\033[1;30m' \
RED='\033[0;31m' \
RED_BOLD='\033[1;31m' \
GREEN='\033[0;32m' \
GREEN_BOLD='\033[1;32m' \
YELLOW='\033[0;33m' \
YELLOW_BOLD='\033[1;33m' \
BLUE='\033[0;34m' \
BLUE_BOLD='\033[1;34m' \
MAGENTA='\033[0;35m' \
MAGENTA_BOLD='\033[1;35m' \
CYAN='\033[0;36m' \
CYAN_BOLD='\033[1;36m' \
WHITE='\033[0;37m' \
WHITE_BOLD='\033[1;37m'

numbers()
{
    printf '%b %b %b %b %b %b %b\n' "${BLACK}1111${RESET}${BLACK_BOLD}1111${RESET}" \
                                    "${RED}2222${RESET}${RED_BOLD}2222${RESET}" \
                                    "${GREEN}3333${RESET}${GREEN_BOLD}3333${RESET}" \
                                    "${YELLOW}4444${RESET}${YELLOW_BOLD}4444${RESET}" \
                                    "${BLUE}5555${RESET}${BLUE_BOLD}5555${RESET}" \
                                    "${MAGENTA}6666${RESET}${MAGENTA_BOLD}6666${RESET}" \
                                    "${CYAN}7777${RESET}${CYAN_BOLD}7777${RESET}" \
                                    "${BLACK}1111${RESET}${BLACK_BOLD}1111${RESET}" \
                                    "${RED}2222${RESET}${RED_BOLD}2222${RESET}" \
                                    "${GREEN}3333${RESET}${GREEN_BOLD}3333${RESET}" \
                                    "${YELLOW}4444${RESET}${YELLOW_BOLD}4444${RESET}" \
                                    "${BLUE}5555${RESET}${BLUE_BOLD}5555${RESET}" \
                                    "${MAGENTA}6666${RESET}${MAGENTA_BOLD}6666${RESET}" \
                                    "${CYAN}7777${RESET}${CYAN_BOLD}7777${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" \
                                    "${WHITE}8888${RESET}${WHITE_BOLD}8888${RESET}" ''
}

blocks()
{
    printf '%b %b %b %b %b %b %b\n' "${BLACK}████${RESET}${BLACK_BOLD}████${RESET}" \
                                    "${RED}████${RESET}${RED_BOLD}████${RESET}" \
                                    "${GREEN}████${RESET}${GREEN_BOLD}████${RESET}" \
                                    "${YELLOW}████${RESET}${YELLOW_BOLD}████${RESET}" \
                                    "${BLUE}████${RESET}${BLUE_BOLD}████${RESET}" \
                                    "${MAGENTA}████${RESET}${MAGENTA_BOLD}████${RESET}" \
                                    "${CYAN}████${RESET}${CYAN_BOLD}████${RESET}" \
                                    "${BLACK}████${RESET}${BLACK_BOLD}████${RESET}" \
                                    "${RED}████${RESET}${RED_BOLD}████${RESET}" \
                                    "${GREEN}████${RESET}${GREEN_BOLD}████${RESET}" \
                                    "${YELLOW}████${RESET}${YELLOW_BOLD}████${RESET}" \
                                    "${BLUE}████${RESET}${BLUE_BOLD}████${RESET}" \
                                    "${MAGENTA}████${RESET}${MAGENTA_BOLD}████${RESET}" \
                                    "${CYAN}████${RESET}${CYAN_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" \
                                    "${WHITE}████${RESET}${WHITE_BOLD}████${RESET}" ''
}

printf '\033c'

case "${1}" in
    b*) blocks
    ;;
    n*) numbers
    ;;
     *) blocks
        numbers
    ;;
esac

exit ${?}
