#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: pre [-c COLOR] PREFIX pre -h EOF } help() { cat <<-'EOF' Options: -c COLOR ANSI color to be used on the prefix text -h, --help show this message EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done COLOR='' while getopts 'c:h' flag; do case "$flag" in c) COLOR="$OPTARG" ;; h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) assert_arg() { if [ -z "$1" ]; then printf 'Missing %s\n\n' "$2" >&2 usage >&2 exit 2 fi } PREFIX="${1:-}" assert_arg "$PREFIX" 'PREFIX' while read -r line; do if [ -z "$COLOR" ]; then printf '%s: %s\n' "$PREFIX" "$line" else printf '%s: %s\n' "$(color -c "$COLOR" "$PREFIX")" "$line" fi done