| #!/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: $?" |