···
+
# Script to preview fonts
+
printf '%b\n' "${0##*/} [-F FILE | -S | -t STRING] [OPTIONS]" \
+
"\t-F FILE - read from file" \
+
"\t-S - read from stdin" \
+
"\t-t STRING - use a string" \
+
"\t-b SIZE - border size" \
+
"\t-c COLORS - set the color of the text and background" \
+
"\t-f FONT - which font to preview" \
+
"\t-h - display this message" \
+
"\t-i - do not generate an inverse image" \
+
"\t-o FILE - output file for the generated image" \
+
"\t-s SIZE - size of the font" \
+
"These values can be set before execution to change default values" \
+
"\tPREFON_ACTION=text (file, stdin, or text)" \
+
"\tPREFON_BORDER_SIZE=16" \
+
"\tPREFON_COLORS=\"000000,ffffff\"" \
+
"\tPREFON_FONT=\"monospace\"" \
+
"\tPREFON_OUTPUT=\"/tmp/prefon.png\"" \
+
"\tPREFON_TEXT=\"The quick brown fox jumps\\\n over the lazy dog}\"" \
+
"\tPREFON_INVERSE=vertical (horizontal, vertical, none)"
+
* ) printf '%s\n' "sus!" 1>&2; exit 1 ;;
+
printf "${0##*/}: $prefix: %b\n" "$*" 1>&2
+
PREFON_ACTION=${PREFON_ACTION:-text}
+
PREFON_BORDER_SIZE=${PREFON_BORDER_SIZE:-16}
+
PREFON_COLORS=${PREFON_COLORS:-000000,ffffff}
+
PREFON_FONT="${PREFON_FONT:-monospace}"
+
PREFON_OUTPUT="${PREFON_OUTPUT:-/tmp/prefon.png}"
+
PREFON_SIZE=${PREFON_SIZE:-16}
+
PREFON_TEXT="${PREFON_TEXT:-The quick brown fox jumps\n over the lazy dog}"
+
PREFON_INVERSE=${PREFON_WITHOUT_INVERSE:-vertical}
+
-* ) flag=${1#-}; shift ;;
+
F ) PREFON_ACTION="file"; PREFON_FILE=$1; shift ;;
+
S ) PREFON_ACTION=stdin; PREFON_FILE=/dev/stdin ;;
+
b ) PREFON_BORDER_SIZE=$1; shift ;;
+
c ) PREFON_COLORS=$1; shift ;;
+
f ) PREFON_FONT=$1; shift ;;
+
i ) PREFON_INVERSE=$1; shift ;;
+
o ) PREFON_OUTPUT=$1; shift ;;
+
s ) PREFON_SIZE=$1; shift ;;
+
t ) PREFON_ACTION=text; PREFON_TEXT=$1; shift ;;
+
* ) printf '%s\n' "${0##*/}: -$arg: invalid argument" 1>&2; usage 1>&2; exit 1 ;;
+
convert -background "#$2" -bordercolor "#$2" -border "$PREFON_BORDER_SIZE" \
+
pango:"<span foreground=\"#$1\" font_desc=\"$PREFON_FONT $PREFON_SIZE\">$4</span>" "$3"
+
fgcolor=${PREFON_COLORS%,*}
+
bgcolor=${PREFON_COLORS#*,}
+
_gen_img "$fgcolor" "$bgcolor" "$PREFON_OUTPUT" "$1" || { info e failed to generate image; exit 1; }
+
[ "$PREFON_INVERSE" != "none" ] && {
+
inverse="${PREFON_OUTPUT%.*}"
+
inverse="${inverse}-inverse.${PREFON_OUTPUT##*.}"
+
_gen_img "$bgcolor" "$fgcolor" "$inverse" "$1" || { info e failed to generate image; exit 1; }
+
case $PREFON_INVERSE in
+
horizontal ) convert "$PREFON_OUTPUT" "$inverse" +append "$PREFON_OUTPUT" \
+
|| { info e failed to generate image; exit 1; } ;;
+
vertical ) convert "$PREFON_OUTPUT" "$inverse" -append "$PREFON_OUTPUT" \
+
|| { info e failed to generate image; exit 1; } ;;
+
* ) info e "${PREFON_INVERSE}: is not a valid value for PREFON_INVERSE"; exit 1 ;;
+
rm "$inverse" || info w failed to remove temporary file: "${inverse}"
+
printf '%s\n' "$PREFON_OUTPUT"
+
while IFS= read -r line
+
input="$(_output_file)"
+
generate_image "$input"
+
file ) [ -e "$PREFON_FILE" ] || { info e "'$PREFON_FILE' does not exist"; exit 1; }
+
stdin ) [ -e /dev/stdin ] || { info e "/dev/stdin does not exist"; exit 1; }
+
text ) [ "$PREFON_TEXT" ] || { info e "string not provided"; exit 1; }
+
generate_image "$PREFON_TEXT" ;;
+
* ) info e invalid action: $PREFON_ACTION; exit 1 ;;