mirror of
https://github.com/openshift/image-registry.git
synced 2026-02-05 09:45:55 +01:00
165 lines
4.3 KiB
Bash
165 lines
4.3 KiB
Bash
#!/bin/bash
|
|
|
|
# This file contains helpful aliases for manipulating the output text to the terminal as
|
|
# well as functions for one-command augmented printing.
|
|
|
|
# os::text::reset resets the terminal output to default if it is called in a TTY
|
|
function os::text::reset() {
|
|
if os::text::internal::is_tty; then
|
|
tput sgr0
|
|
fi
|
|
}
|
|
readonly -f os::text::reset
|
|
|
|
# os::text::bold sets the terminal output to bold text if it is called in a TTY
|
|
function os::text::bold() {
|
|
if os::text::internal::is_tty; then
|
|
tput bold
|
|
fi
|
|
}
|
|
readonly -f os::text::bold
|
|
|
|
# os::text::red sets the terminal output to red text if it is called in a TTY
|
|
function os::text::red() {
|
|
if os::text::internal::is_tty; then
|
|
tput setaf 1
|
|
fi
|
|
}
|
|
readonly -f os::text::red
|
|
|
|
# os::text::green sets the terminal output to green text if it is called in a TTY
|
|
function os::text::green() {
|
|
if os::text::internal::is_tty; then
|
|
tput setaf 2
|
|
fi
|
|
}
|
|
readonly -f os::text::green
|
|
|
|
# os::text::blue sets the terminal output to blue text if it is called in a TTY
|
|
function os::text::blue() {
|
|
if os::text::internal::is_tty; then
|
|
tput setaf 4
|
|
fi
|
|
}
|
|
readonly -f os::text::blue
|
|
|
|
# os::text::yellow sets the terminal output to yellow text if it is called in a TTY
|
|
function os::text::yellow() {
|
|
if os::text::internal::is_tty; then
|
|
tput setaf 11
|
|
fi
|
|
}
|
|
readonly -f os::text::yellow
|
|
|
|
# os::text::clear_last_line clears the text from the last line of output to the
|
|
# terminal and leaves the cursor on that line to allow for overwriting that text
|
|
# if it is called in a TTY
|
|
function os::text::clear_last_line() {
|
|
if os::text::internal::is_tty; then
|
|
tput cuu 1
|
|
tput el
|
|
fi
|
|
}
|
|
readonly -f os::text::clear_last_line
|
|
|
|
# os::text::clear_string attempts to clear the entirety of a string from the terminal.
|
|
# If the string contains literal tabs or other characters that take up more than one
|
|
# character space in output, or if the window size is changed before this function
|
|
# is called, it will not function correctly.
|
|
# No action is taken if this is called outside of a TTY
|
|
function os::text::clear_string() {
|
|
local -r string="$1"
|
|
if os::text::internal::is_tty; then
|
|
echo "${string}" | while read line; do
|
|
# num_lines is the number of terminal lines this one line of output
|
|
# would have taken up with the current terminal width in columns
|
|
local num_lines=$(( ${#line} / $( tput cols ) ))
|
|
for (( i = 0; i <= num_lines; i++ )); do
|
|
os::text::clear_last_line
|
|
done
|
|
done
|
|
fi
|
|
}
|
|
|
|
# os::text::internal::is_tty determines if we are outputting to a TTY
|
|
function os::text::internal::is_tty() {
|
|
[[ -t 1 && -n "${TERM:-}" ]]
|
|
}
|
|
readonly -f os::text::internal::is_tty
|
|
|
|
# os::text::print_bold prints all input in bold text
|
|
function os::text::print_bold() {
|
|
os::text::bold
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_bold
|
|
|
|
# os::text::print_red prints all input in red text
|
|
function os::text::print_red() {
|
|
os::text::red
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_red
|
|
|
|
# os::text::print_red_bold prints all input in bold red text
|
|
function os::text::print_red_bold() {
|
|
os::text::red
|
|
os::text::bold
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_red_bold
|
|
|
|
# os::text::print_green prints all input in green text
|
|
function os::text::print_green() {
|
|
os::text::green
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_green
|
|
|
|
# os::text::print_green_bold prints all input in bold green text
|
|
function os::text::print_green_bold() {
|
|
os::text::green
|
|
os::text::bold
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_green_bold
|
|
|
|
# os::text::print_blue prints all input in blue text
|
|
function os::text::print_blue() {
|
|
os::text::blue
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_blue
|
|
|
|
# os::text::print_blue_bold prints all input in bold blue text
|
|
function os::text::print_blue_bold() {
|
|
os::text::blue
|
|
os::text::bold
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_blue_bold
|
|
|
|
# os::text::print_yellow prints all input in yellow text
|
|
function os::text::print_yellow() {
|
|
os::text::yellow
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_yellow
|
|
|
|
# os::text::print_yellow_bold prints all input in bold yellow text
|
|
function os::text::print_yellow_bold() {
|
|
os::text::yellow
|
|
os::text::bold
|
|
echo "${*}"
|
|
os::text::reset
|
|
}
|
|
readonly -f os::text::print_yellow_bold
|