000503fad7
In the past, OpenRC was a hybrid of a centralized and file-scope license/copyright structure. I followed the instructions from the Software Freedom Law Center [1] to convert to a Centralized structure where possible, for easier future maintenance. [1] https://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
198 lines
5.1 KiB
Groff
198 lines
5.1 KiB
Groff
.\" Copyright (c) 2007-2015 The OpenRC Authors.
|
|
.\" See the Authors file at the top-level directory of this distribution and
|
|
.\" https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
|
.\"
|
|
.\" This file is part of OpenRC. It is subject to the license terms in
|
|
.\" the LICENSE file found in the top-level directory of this
|
|
.\" distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
|
.\" This file may not be copied, modified, propagated, or distributed
|
|
.\" except according to the terms contained in the LICENSE file.
|
|
.\"
|
|
.Dd Mar 16, 2008
|
|
.Dt EINFO 3 SMM
|
|
.Os OpenRC
|
|
.Sh NAME
|
|
.Nm einfo , ewarn , eerror , ebegin ,
|
|
.Nm einfon , ewarnn , eerrorn , ebeginn ,
|
|
.Nm einfov , ewarnv , ebeginv ,
|
|
.Nm einfovn , ewarnvn , ebeginvn ,
|
|
.Nm ewarnx , eerrorx ,
|
|
.Nm eend , ewend ,
|
|
.Nm eendv , ewendv ,
|
|
.Nm ebracket ,
|
|
.Nm eindent , eoutdent ,
|
|
.Nm eindentv , eoutdentv ,
|
|
.Nm eprefix
|
|
.Nd colorful informational output
|
|
.Sh LIBRARY
|
|
Enhanced Information output library (libeinfo, -leinfo)
|
|
.Sh SYNOPSIS
|
|
.In einfo.h
|
|
.Ft int Fn einfo "const char * restrict format" ...
|
|
.Ft int Fn ewarn "const char * restrict format" ...
|
|
.Ft int Fn eerror "const char * restrict format" ...
|
|
.Ft int Fn ebegin "const char * restrict format" ...
|
|
.Ft int Fn einfon "const char * restrict format" ...
|
|
.Ft int Fn ewarnn "const char * restrict format" ...
|
|
.Ft int Fn eerrorn "const char * restrict format" ...
|
|
.Ft int Fn ebeginn "const char * restrict format" ...
|
|
.Ft int Fn einfov "const char * restrict format" ...
|
|
.Ft int Fn ewarnv "const char * restrict format" ...
|
|
.Ft int Fn ebeginv "const char * restrict format" ...
|
|
.Ft int Fn einfovn "const char * restrict format" ...
|
|
.Ft int Fn ewarnvn "const char * restrict format" ...
|
|
.Ft int Fn ebeginvn "const char * restrict format" ...
|
|
.Ft int Fn ewarnx "const char * restrict format" ...
|
|
.Ft int Fn eerrorx "const char * restrict format" ...
|
|
.Ft int Fn eend "int retval" "const char * restrict format" ...
|
|
.Ft int Fn ewend "int retval" "const char * restrict format" ...
|
|
.Ft int Fn eendv "int retval" "const char * restrict format" ...
|
|
.Ft int Fn ewendv "int retval" "const char * restrict format" ...
|
|
.Ft void Fn ebracket "int col" "ECOLOR color" "const char * restrict msg"
|
|
.Ft void Fn eindent void
|
|
.Ft void Fn eoutdent void
|
|
.Ft void Fn eindentv void
|
|
.Ft void Fn eoutdentv void
|
|
.Ft void Fn eprefix "const char * prefix"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn einfo
|
|
family of functions provide a simple informational output that is colorised.
|
|
Basically
|
|
.Fn einfo ,
|
|
.Fn ewarn
|
|
and
|
|
.Fn eerror
|
|
behave exactly like
|
|
.Fn printf
|
|
but prefix the output with a colored *. The function called denotes the color
|
|
used with
|
|
.Fn einfo
|
|
being green,
|
|
.Fn ewarn
|
|
being yellow and
|
|
.Fn eerror
|
|
being red.
|
|
einfo goes to stdout and the others go to stderr.
|
|
The number of real characters printed is returned.
|
|
.Fn ebegin
|
|
is identical to
|
|
.Fn einfo
|
|
except that 3 dots are appended to the output.
|
|
.Pp
|
|
.Fn einfov ,
|
|
.Fn ewarnv
|
|
and
|
|
.Fn ebeginv
|
|
work the same way to
|
|
.Fn einfo ,
|
|
.Fn ewarn ,
|
|
and
|
|
.Fn ebegin
|
|
respectively, but only work when
|
|
.Va EINFO_VERBOSE
|
|
is true. You can also make the
|
|
.Fn einfo ,
|
|
.Fn ewarn ,
|
|
and
|
|
.Fn ebegin
|
|
functions silent by setting
|
|
.Va EINFO_QUIET
|
|
to true.
|
|
.Pp
|
|
These functions are designed to output a whole line, so they also
|
|
append a newline to the string. To stop this behaviour, you can use the
|
|
functions
|
|
.Fn einfon ,
|
|
.Fn ewarnn ,
|
|
.Fn eerrorn ,
|
|
.Fn einfovn ,
|
|
.Fn ewarnvn ,
|
|
and
|
|
.Fn ebeginvn .
|
|
.Pp
|
|
.Fn eend ,
|
|
.Fn ewend ,
|
|
.Fn eendv
|
|
and
|
|
.Fn ewendv
|
|
are the counterparts to the above functions. If
|
|
.Fa retval
|
|
is zero then ok in green is printed in a bracket at the end of the prior
|
|
line. Otherwise we print the formatted string using
|
|
.Fn error
|
|
(or
|
|
.Fn ewarn
|
|
if
|
|
.Fn ewend
|
|
is called) !! in red (or yellow if
|
|
.Fn ewend
|
|
is called) is printed in a bracket at the end of the line.
|
|
The value of
|
|
.Fa retval
|
|
is returned.
|
|
.Pp
|
|
.Fn ebracket
|
|
does the same as
|
|
.Fn eend
|
|
but prints
|
|
.Fa msg
|
|
instead of ok or !! in the color
|
|
.Fa color
|
|
at the column
|
|
.Fa col .
|
|
.Pp
|
|
.Fn eindent
|
|
indents subsequent calls to the above functions by 3 characters.
|
|
.Fn eoutdent
|
|
removes an
|
|
.Fn eindent .
|
|
.Fn eindentv
|
|
and
|
|
.Fn eoutdentv
|
|
only work when
|
|
.Va EINFO_VERBOSE
|
|
is true.
|
|
.Pp
|
|
.Fn eprefix
|
|
prefixes the string
|
|
.Fa prefix
|
|
to the above functions.
|
|
.Sh IMPLEMENTATION NOTES
|
|
einfo can optionally be linked against the
|
|
.Lb libtermcap
|
|
so that we can correctly query the connected console for our color and
|
|
cursor escape codes.
|
|
If not, then we have a hard coded list of terminals we know about that support
|
|
the commonly used codes for color and cursor position.
|
|
.Sh ENVIRONMENT
|
|
.Va EINFO_QUIET
|
|
when set to true makes the
|
|
.Fn einfo
|
|
and
|
|
.Fn einfon
|
|
family of functions quiet, so nothing is printed.
|
|
.Va EERROR_QUIET
|
|
when set to true makes the
|
|
.Fn eerror
|
|
and
|
|
.Fn eerrorn
|
|
family of functions quiet, so nothing is printed.
|
|
.Pp
|
|
.Va EINFO_VERBOSE
|
|
when set to true makes the
|
|
.Fn einfov
|
|
and
|
|
.Fn einfovn
|
|
family of functions work, so they do print.
|
|
.Sh FILES
|
|
.Pa /etc/init.d/functions.sh
|
|
is provided by OpenRC, which allows shell scripts to use the above functions.
|
|
For historical reasons our verbose functions are prefixed with v instead of
|
|
suffixed. So einfov becomes veinfo, einfovn becomes veinfon.
|
|
Rinse and repeat for the other verbose functions.
|
|
.Sh SEE ALSO
|
|
.Xr printf 3 ,
|
|
.Sh AUTHORS
|
|
.An Roy Marples <roy@marples.name>
|