|  | #!/bin/bash | 
|  | # Copyright 2018 The Fuchsia Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | # Visual tests for //tools/devshell/lib/style.sh | 
|  |  | 
|  | # This is not an automated unit test. | 
|  | # It prints stylized text describing the style to be shown, so a tester | 
|  | # can validate the expected style is rendered. | 
|  |  | 
|  | # Note that some terminals do not support all terminal styles. | 
|  | # For instance, italic may not render as italic on MacOS. | 
|  |  | 
|  | source "$(cd "$(dirname "${BASH_SOURCE[0]}")"/../devshell/lib >/dev/null 2>&1 && pwd)"/style.sh || exit $? | 
|  |  | 
|  | runtest() { | 
|  | command="$1"; shift | 
|  | "${command}" "$@" "${command} $*" | 
|  | } | 
|  |  | 
|  | style::stylize --help | 
|  | style::echo --blue $'------------------' | 
|  | style::printf --help | 
|  | style::echo --blue $'------------------' | 
|  | style::error --help | 
|  | style::echo --blue $'------------------' | 
|  | style::link --help | 
|  | style::echo --blue $'----- colors -----' | 
|  | style::echo --help colors | 
|  | style::echo --blue $'--- attributes ---' | 
|  | style::echo --help attributes | 
|  | style::echo --blue $'------------------' | 
|  |  | 
|  | runtest style::echo --bold | 
|  | runtest style::echo --bold --color cyan | 
|  | runtest style::echo --faint --color green | 
|  | runtest style::echo --italic --color magenta | 
|  | runtest style::echo --underline --color dark_blue | 
|  | runtest style::echo --blink --color light_gray | 
|  | runtest style::echo --pink --background dark_cyan | 
|  | runtest style::echo --italic --dark_magenta italic "this style may not work in some terminals:" | 
|  |  | 
|  | style::printf --bold '%10s %6s\n' Item Cost | 
|  | style::printf '%10s %6s\n'        ---- ---- | 
|  | style::printf --purple --background white  '%10s $%6.2f\n' beans 2.90 franks 9.35 cola 7.99 tiramasu 24.50 | 
|  |  | 
|  | style::cat --background dark_yellow --black << EOF | 
|  | Now is the time for all good | 
|  | people to come to the | 
|  | aid of their country and world. | 
|  | EOF | 
|  |  | 
|  | style::cat --background cyan --color black --indent 4 << EOF | 
|  | Now is the time for all good | 
|  | people to come to the | 
|  | aid of their country and world. | 
|  | EOF | 
|  |  | 
|  | style::info 'INFO: Info here' | 
|  | style::warning 'WARNING: Watch out!' | 
|  | style::error 'ERROR: What went wrong now?' | 
|  | style::link 'http://wikipedia.com' | 
|  |  | 
|  | STYLE_WARNING='--stderr --blink --dark_yellow' | 
|  | style::warning 'WARNING: Customized warning style, still to stderr! :-)' | 
|  |  | 
|  | STYLE_TO_TTY_ONLY=true  # default is false | 
|  | style::echo --bold --red "STYLE_TO_TTY_ONLY=$STYLE_TO_TTY_ONLY" | 
|  | style::echo --stderr --bold --red ' | 
|  | This should still display in bold red, but on stderr' >/dev/null | 
|  |  | 
|  | style::echo --color cyan --faint " | 
|  | This will not be styled. It doesn't print directly to the tty" | cat | 
|  |  | 
|  | style::echo --stderr --color cyan --faint " | 
|  | This will not be styled. stderr doesn't print directly to the tty" 2>&1 | cat | 
|  |  | 
|  | STYLE_TO_TTY_ONLY=false | 
|  | style::echo --bold --red "STYLE_TO_TTY_ONLY=$STYLE_TO_TTY_ONLY" | 
|  | style::echo --color cyan --faint " | 
|  | This will be styled even though it doesn't print directly to the tty." | cat | 
|  |  | 
|  | style::echo --stderr --color cyan --faint " | 
|  | This will be styled even though stderr doesn't print directly to the tty" 2>&1 | cat | 
|  |  | 
|  | # Three flags for the same thing: | 
|  | echo "This is $(style::echo -f      --bold --yellow LOUD) and soft." | 
|  | echo "This is $(style::echo --force --bold --yellow LOUD) and soft." | 
|  | echo "This is $(style::echo --tty   --bold --yellow LOUD) and soft." | 
|  |  | 
|  | style::printf --blod --green 'Bad style' 2>/dev/null || echo "Bad style, Error status: $?" | 
|  | style::printf --faint --orange 'No orange' 2>/dev/null || echo "No orange! Error status: $?" |