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