Compare commits
	
		
			8 Commits
		
	
	
		
			0.38.3
			...
			funtoo-ope
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					96ef50c2f9 | ||
| 
						 | 
					edb7e73b34 | ||
| 
						 | 
					a1ab17889d | ||
| 
						 | 
					67b2255ebb | ||
| 
						 | 
					6eace7dc5a | ||
| 
						 | 
					11e1f4d30d | ||
| 
						 | 
					c30a8d2c3c | ||
| 
						 | 
					419af8f0aa | 
@@ -1,3 +1,3 @@
 | 
			
		||||
NAME=		openrc
 | 
			
		||||
VERSION=	0.13
 | 
			
		||||
VERSION=	0.12.1
 | 
			
		||||
PKG=		${NAME}-${VERSION}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,2 @@
 | 
			
		||||
# Set to the hostname of this machine
 | 
			
		||||
# Set to the fully-qualified hostname of this machine
 | 
			
		||||
hostname="localhost"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -3,7 +3,6 @@ fsck
 | 
			
		||||
hostname
 | 
			
		||||
local
 | 
			
		||||
localmount
 | 
			
		||||
loopback
 | 
			
		||||
moused
 | 
			
		||||
netmount
 | 
			
		||||
network
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
include ../mk/net.mk
 | 
			
		||||
 | 
			
		||||
DIR=	${INITDIR}
 | 
			
		||||
SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
 | 
			
		||||
SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in \
 | 
			
		||||
	netmount.in root.in savecache.in swap.in swapfiles.in \
 | 
			
		||||
	tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
 | 
			
		||||
BIN=	${OBJS}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,42 @@
 | 
			
		||||
#!@SBINDIR@/runscript
 | 
			
		||||
#!@PREFIX@/sbin/runscript
 | 
			
		||||
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
description="Sets the hostname of the machine."
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	keyword -prefix -lxc
 | 
			
		||||
	need root
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	# HOSTNAME variable used to be defined in caps in conf.d/hostname.
 | 
			
		||||
	# It is also a magic variable in bash.
 | 
			
		||||
	hostname=${hostname-${HOSTNAME-localhost}} # checkbashisms: false positive
 | 
			
		||||
	hostname=${hostname-${HOSTNAME-localhost}}
 | 
			
		||||
	out=$hostname
 | 
			
		||||
	short=${hostname%%.*}
 | 
			
		||||
	if [ "$short" != "$hostname" ]; then
 | 
			
		||||
		out="$out $short"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$nisdomainname" != "" ]; then
 | 
			
		||||
		ebegin "Setting NIS domain name to $nisdomainname"
 | 
			
		||||
		nisdomainname $nisdomainname
 | 
			
		||||
		eend $? "Failed to set the NIS domain name"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$short" != "localhost" ]; then
 | 
			
		||||
		out="$out localhost"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$hostname" != "localhost.localdomain" ]; then
 | 
			
		||||
		out="$out localhost.localdomain"
 | 
			
		||||
	fi
 | 
			
		||||
	[ -n "$aliases" ] && out="$out $aliases"
 | 
			
		||||
	ebegin "Configuring /etc/hosts"
 | 
			
		||||
	[ -e /etc/hosts ] && sed -i -e '/[[:space:]]*127.0.0.1[[:space:]]/d' -e '/[[:space:]]*::1[[:space:]]/d' /etc/hosts
 | 
			
		||||
	cat <<END >> /etc/hosts
 | 
			
		||||
127.0.0.1	$out
 | 
			
		||||
::1		$out
 | 
			
		||||
END
 | 
			
		||||
	chmod 0644 /etc/hosts
 | 
			
		||||
	eend $?
 | 
			
		||||
	[ "$RC_SYS" = "LXC" ] && return 0
 | 
			
		||||
	ebegin "Setting hostname to $hostname"
 | 
			
		||||
	hostname "$hostname"
 | 
			
		||||
	eend $? "Failed to set the hostname"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +0,0 @@
 | 
			
		||||
#!@SBINDIR@/runscript
 | 
			
		||||
# Copyright (c) 2013 William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
description="Configures the loopback interface."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		ebegin "Bringing up network interface lo"
 | 
			
		||||
		if type ip > /dev/null 2>&1; then
 | 
			
		||||
			ip addr add 127.0.0.1/8 dev lo brd + scope host
 | 
			
		||||
			ip route add 127.0.0.0/8 dev lo scope host
 | 
			
		||||
			ip link set lo up
 | 
			
		||||
		else
 | 
			
		||||
			ifconfig lo 127.0.0.1 netmask 255.0.0.0
 | 
			
		||||
			route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1
 | 
			
		||||
		fi
 | 
			
		||||
	else
 | 
			
		||||
		ebegin "Bringing up network interface lo0"
 | 
			
		||||
		ifconfig lo0 127.0.0.1 netmask 255.0.0.0
 | 
			
		||||
		route -q add -inet 127.0.0.0 -netmask 255.0.0.0 127.0.0.1
 | 
			
		||||
	fi
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop()
 | 
			
		||||
{
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
#!@SBINDIR@/runscript
 | 
			
		||||
#!@PREFIX@/sbin/runscript
 | 
			
		||||
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before bootmisc logger
 | 
			
		||||
	keyword -lxc -prefix -vserver
 | 
			
		||||
	keyword -lxc -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
@@ -15,6 +15,14 @@ start()
 | 
			
		||||
	ebegin "Configuring kernel parameters"
 | 
			
		||||
	eindent
 | 
			
		||||
 | 
			
		||||
	# default sysctl System V max shared memory to 1/4 of RAM:
 | 
			
		||||
	mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo`
 | 
			
		||||
	mem_max=`expr $mem_bytes / 4`
 | 
			
		||||
	page_size=`getconf PAGE_SIZE`
 | 
			
		||||
	shmall=`expr $mem_bytes / $page_size`
 | 
			
		||||
	sysctl kernel.shmmax=$mem_max > /dev/null
 | 
			
		||||
	sysctl kernel.shmall=$shmall > /dev/null
 | 
			
		||||
 | 
			
		||||
	for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do
 | 
			
		||||
		if [ -r "$conf" ]; then
 | 
			
		||||
			vebegin "applying $conf"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
MAN3=		\
 | 
			
		||||
MAN3=		einfo.3 \
 | 
			
		||||
		rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \
 | 
			
		||||
		rc_runlevel.3 rc_service.3 rc_stringlist.3
 | 
			
		||||
MAN8=		rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										210
									
								
								man/einfo.3
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								man/einfo.3
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,210 @@
 | 
			
		||||
.\" Copyright (c) 2007-2008 Roy Marples
 | 
			
		||||
.\"
 | 
			
		||||
.\" Redistribution and use in source and binary forms, with or without
 | 
			
		||||
.\" modification, are permitted provided that the following conditions
 | 
			
		||||
.\" are met:
 | 
			
		||||
.\" 1. Redistributions of source code must retain the above copyright
 | 
			
		||||
.\"    notice, this list of conditions and the following disclaimer.
 | 
			
		||||
.\" 2. Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
.\"    notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
.\"    documentation and/or other materials provided with the distribution.
 | 
			
		||||
.\"
 | 
			
		||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
			
		||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
			
		||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
			
		||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
			
		||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
			
		||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
			
		||||
.\" SUCH DAMAGE.
 | 
			
		||||
.\"
 | 
			
		||||
.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>
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
DIR=	${LIBDIR}/pkgconfig
 | 
			
		||||
SRCS=	openrc.pc.in
 | 
			
		||||
INC=	openrc.pc
 | 
			
		||||
SRCS=	einfo.pc.in openrc.pc.in
 | 
			
		||||
INC=	einfo.pc openrc.pc
 | 
			
		||||
 | 
			
		||||
.DEFAULT:
 | 
			
		||||
	${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								pkgconfig/einfo.pc.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								pkgconfig/einfo.pc.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
prefix=@PREFIX@
 | 
			
		||||
exec_prefix=${prefix}
 | 
			
		||||
libdir=${prefix}/@LIB@
 | 
			
		||||
includedir=/usr/include
 | 
			
		||||
 | 
			
		||||
Name: einfo
 | 
			
		||||
Description: Pretty console informational display
 | 
			
		||||
Version: @VERSION@
 | 
			
		||||
Libs: -L${libdir} -leinfo
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
include ../mk/net.mk
 | 
			
		||||
 | 
			
		||||
BOOT=		bootmisc fsck hostname localmount loopback \
 | 
			
		||||
BOOT=		bootmisc fsck hostname localmount \
 | 
			
		||||
		root swap swapfiles sysctl urandom ${BOOT-${OS}}
 | 
			
		||||
DEFAULT=	local netmount
 | 
			
		||||
SHUTDOWN=	savecache ${SHUTDOWN-${OS}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
SUBDIR=		test librc rc
 | 
			
		||||
SUBDIR=		test libeinfo librc rc
 | 
			
		||||
 | 
			
		||||
ifeq (${MKTOOLS},yes)
 | 
			
		||||
SUBDIR+= tools
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								src/libeinfo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/libeinfo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
libeinfo.so.1
 | 
			
		||||
							
								
								
									
										12
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
LIB=			einfo
 | 
			
		||||
SHLIB_MAJOR=		1
 | 
			
		||||
SRCS=			libeinfo.c
 | 
			
		||||
INCS=			einfo.h
 | 
			
		||||
VERSION_MAP=		einfo.map
 | 
			
		||||
 | 
			
		||||
CPPFLAGS+=		-I../includes
 | 
			
		||||
 | 
			
		||||
MK=			../../mk
 | 
			
		||||
include ${MK}/lib.mk
 | 
			
		||||
include ${MK}/cc.mk
 | 
			
		||||
include ${MK}/termcap.mk
 | 
			
		||||
@@ -37,6 +37,19 @@
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 | 
			
		||||
/* Although OpenRC requires C99, linking to us should not. */
 | 
			
		||||
#ifdef restrict
 | 
			
		||||
# define EINFO_RESTRICT restrict
 | 
			
		||||
#else
 | 
			
		||||
# ifdef __restrict
 | 
			
		||||
#  define EINFO_RESTRICT __restrict
 | 
			
		||||
# else
 | 
			
		||||
#  define EINFO_RESTRICT
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
__BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/*! @brief Color types to use */
 | 
			
		||||
typedef enum
 | 
			
		||||
{
 | 
			
		||||
@@ -52,14 +65,14 @@ typedef enum
 | 
			
		||||
const char *ecolor(ECOLOR);
 | 
			
		||||
 | 
			
		||||
/*! @brief Writes to syslog. */
 | 
			
		||||
void elog(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
 * @brief Display informational messages.
 | 
			
		||||
 *
 | 
			
		||||
 * The einfo family of functions display messages in a consistent manner
 | 
			
		||||
 * Basically they prefix the message with " * ".
 | 
			
		||||
 * If the terminal can handle color then we color the * based on
 | 
			
		||||
 * across applications. Basically they prefix the message with
 | 
			
		||||
 * " * ". If the terminal can handle color then we color the * based on
 | 
			
		||||
 * the command used. Otherwise we are identical to the printf function.
 | 
			
		||||
 *
 | 
			
		||||
 * - einfo  - green
 | 
			
		||||
@@ -70,22 +83,22 @@ void elog(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
 * The v suffix means only print if EINFO_VERBOSE is yes.
 | 
			
		||||
 */
 | 
			
		||||
/*@{*/
 | 
			
		||||
int einfon(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnn(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int eerrorn(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int einfo(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarn(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
void ewarnx(const char *, ...) EINFO_XPRINTF(1, 2);
 | 
			
		||||
int eerror(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
void eerrorx(const char *, ...) EINFO_XPRINTF(1, 2);
 | 
			
		||||
int einfon(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int eerrorn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int einfo(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
void ewarnx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
 | 
			
		||||
int eerror(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
void eerrorx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
 | 
			
		||||
 | 
			
		||||
int einfovn(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnvn(const char * , ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ebeginvn(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int eendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int einfov(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnv(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int einfovn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ebeginvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int eendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int einfov(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
/*@}*/
 | 
			
		||||
 | 
			
		||||
/*! @ingroup ebegin
 | 
			
		||||
@@ -93,8 +106,8 @@ int ewarnv(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
 *
 | 
			
		||||
 * Similar to einfo, but we add ... to the end of the message */
 | 
			
		||||
/*@{*/
 | 
			
		||||
int ebeginv(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ebegin(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ebeginv(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
/*@}*/
 | 
			
		||||
 | 
			
		||||
/*! @ingroup eend
 | 
			
		||||
@@ -106,12 +119,12 @@ int ebegin(const char *, ...) EINFO_PRINTF(1, 2);
 | 
			
		||||
 *
 | 
			
		||||
 * ebracket allows you to specifiy the position, color and message */
 | 
			
		||||
/*@{*/
 | 
			
		||||
int eend(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewend(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
void ebracket(int, ECOLOR, const char *);
 | 
			
		||||
int eend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
void ebracket(int, ECOLOR, const char * EINFO_RESTRICT);
 | 
			
		||||
 | 
			
		||||
int eendv(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewendv(int, const char *, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int eendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
int ewendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
 | 
			
		||||
/*@}*/
 | 
			
		||||
 | 
			
		||||
/*! @ingroup eindent
 | 
			
		||||
@@ -125,6 +138,7 @@ void eindentv(void);
 | 
			
		||||
void eoutdentv(void);
 | 
			
		||||
 | 
			
		||||
/*! @brief Prefix each einfo line with something */
 | 
			
		||||
void eprefix(const char *);
 | 
			
		||||
void eprefix(const char * EINFO_RESTRICT);
 | 
			
		||||
 | 
			
		||||
__END_DECLS
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										35
									
								
								src/libeinfo/einfo.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/libeinfo/einfo.map
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
EINFO_1.0 {
 | 
			
		||||
global:
 | 
			
		||||
	ecolor;
 | 
			
		||||
	elog;
 | 
			
		||||
	einfon;
 | 
			
		||||
	ewarnn;
 | 
			
		||||
	eerrorn;
 | 
			
		||||
	einfo;
 | 
			
		||||
	ewarn;
 | 
			
		||||
	ewarnx;
 | 
			
		||||
	eerror;
 | 
			
		||||
	eerrorx;
 | 
			
		||||
	einfovn;
 | 
			
		||||
	ewarnvn;
 | 
			
		||||
	ebeginvn;
 | 
			
		||||
	eendvn;
 | 
			
		||||
	ewendvn;
 | 
			
		||||
	einfov;
 | 
			
		||||
	ewarnv;
 | 
			
		||||
	ebeginv;
 | 
			
		||||
	ebegin;
 | 
			
		||||
	eend;
 | 
			
		||||
	ewend;
 | 
			
		||||
	ebracket;
 | 
			
		||||
	eendv;
 | 
			
		||||
	ewendv;
 | 
			
		||||
	eindent;
 | 
			
		||||
	eoutdent;
 | 
			
		||||
	eindentv;
 | 
			
		||||
	eoutdentv;
 | 
			
		||||
	eprefix;
 | 
			
		||||
 | 
			
		||||
local:
 | 
			
		||||
	*;
 | 
			
		||||
};
 | 
			
		||||
@@ -52,6 +52,34 @@ const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples";
 | 
			
		||||
 | 
			
		||||
#include "einfo.h"
 | 
			
		||||
#include "helpers.h"
 | 
			
		||||
#include "hidden-visibility.h"
 | 
			
		||||
 | 
			
		||||
hidden_proto(ecolor)
 | 
			
		||||
hidden_proto(ebegin)
 | 
			
		||||
hidden_proto(ebeginv)
 | 
			
		||||
hidden_proto(ebracket)
 | 
			
		||||
hidden_proto(eend)
 | 
			
		||||
hidden_proto(eendv)
 | 
			
		||||
hidden_proto(eerror)
 | 
			
		||||
hidden_proto(eerrorn)
 | 
			
		||||
hidden_proto(eerrorx)
 | 
			
		||||
hidden_proto(eindent)
 | 
			
		||||
hidden_proto(eindentv)
 | 
			
		||||
hidden_proto(einfo)
 | 
			
		||||
hidden_proto(einfon)
 | 
			
		||||
hidden_proto(einfov)
 | 
			
		||||
hidden_proto(einfovn)
 | 
			
		||||
hidden_proto(elog)
 | 
			
		||||
hidden_proto(eoutdent)
 | 
			
		||||
hidden_proto(eoutdentv)
 | 
			
		||||
hidden_proto(eprefix)
 | 
			
		||||
hidden_proto(ewarn)
 | 
			
		||||
hidden_proto(ewarnn)
 | 
			
		||||
hidden_proto(ewarnv)
 | 
			
		||||
hidden_proto(ewarnvn)
 | 
			
		||||
hidden_proto(ewarnx)
 | 
			
		||||
hidden_proto(ewend)
 | 
			
		||||
hidden_proto(ewendv)
 | 
			
		||||
 | 
			
		||||
/* Incase we cannot work out how many columns from ioctl, supply a default */
 | 
			
		||||
#define DEFAULT_COLS		 80
 | 
			
		||||
@@ -324,7 +352,7 @@ tgoto(const char *cap, int col, int line)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static bool
 | 
			
		||||
colour_terminal(FILE *f)
 | 
			
		||||
colour_terminal(FILE * EINFO_RESTRICT f)
 | 
			
		||||
{
 | 
			
		||||
	static int in_colour = -1;
 | 
			
		||||
	char *e, *ee, *end, *d, *p;
 | 
			
		||||
@@ -471,7 +499,7 @@ colour_terminal(FILE *f)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
get_term_columns(FILE *stream)
 | 
			
		||||
get_term_columns(FILE * EINFO_RESTRICT stream)
 | 
			
		||||
{
 | 
			
		||||
	struct winsize ws;
 | 
			
		||||
	char *env = getenv("COLUMNS");
 | 
			
		||||
@@ -491,13 +519,14 @@ get_term_columns(FILE *stream)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
eprefix(const char *prefix)
 | 
			
		||||
eprefix(const char *EINFO_RESTRICT prefix)
 | 
			
		||||
{
 | 
			
		||||
	_eprefix = prefix;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eprefix)
 | 
			
		||||
 | 
			
		||||
static void EINFO_PRINTF(2, 0)
 | 
			
		||||
elogv(int level, const char *fmt, va_list ap)
 | 
			
		||||
elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap)
 | 
			
		||||
{
 | 
			
		||||
	char *e = getenv("EINFO_LOG");
 | 
			
		||||
	va_list apc;
 | 
			
		||||
@@ -513,7 +542,7 @@ elogv(int level, const char *fmt, va_list ap)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
elog(int level, const char *fmt, ...)
 | 
			
		||||
elog(int level, const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -521,9 +550,10 @@ elog(int level, const char *fmt, ...)
 | 
			
		||||
	elogv(level, fmt, ap);
 | 
			
		||||
	va_end(ap);
 | 
			
		||||
}
 | 
			
		||||
hidden_def(elog)
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_eindent(FILE *stream)
 | 
			
		||||
_eindent(FILE * EINFO_RESTRICT stream)
 | 
			
		||||
{
 | 
			
		||||
	char *env = getenv("EINFO_INDENT");
 | 
			
		||||
	int amount = 0;
 | 
			
		||||
@@ -547,7 +577,7 @@ _eindent(FILE *stream)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const char *
 | 
			
		||||
_ecolor(FILE *f, ECOLOR color)
 | 
			
		||||
_ecolor(FILE * EINFO_RESTRICT f, ECOLOR color)
 | 
			
		||||
{
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
 | 
			
		||||
@@ -559,6 +589,7 @@ _ecolor(FILE *f, ECOLOR color)
 | 
			
		||||
			return ecolors_str[i];
 | 
			
		||||
	return "";
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ecolor)
 | 
			
		||||
 | 
			
		||||
const char *
 | 
			
		||||
ecolor(ECOLOR color)
 | 
			
		||||
@@ -584,7 +615,7 @@ ecolor(ECOLOR color)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
static int EINFO_PRINTF(3, 0)
 | 
			
		||||
	_einfo(FILE *f, ECOLOR color, const char *fmt, va_list va)
 | 
			
		||||
	_einfo(FILE *f, ECOLOR color, const char *EINFO_RESTRICT fmt, va_list va)
 | 
			
		||||
{
 | 
			
		||||
	int retval = 0;
 | 
			
		||||
	char *last = getenv("EINFO_LASTCMD");
 | 
			
		||||
@@ -612,7 +643,7 @@ static int EINFO_PRINTF(3, 0)
 | 
			
		||||
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
einfon(const char *fmt, ...)
 | 
			
		||||
einfon(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -625,9 +656,10 @@ einfon(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("einfon");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(einfon)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewarnn(const char *fmt, ...)
 | 
			
		||||
ewarnn(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -640,9 +672,10 @@ ewarnn(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewarnn");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewarnn)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
eerrorn(const char *fmt, ...)
 | 
			
		||||
eerrorn(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -655,9 +688,10 @@ eerrorn(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("errorn");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eerrorn)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
einfo(const char *fmt, ...)
 | 
			
		||||
einfo(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -671,9 +705,10 @@ einfo(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("einfo");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(einfo)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewarn(const char *fmt, ...)
 | 
			
		||||
ewarn(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -688,9 +723,10 @@ ewarn(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewarn");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewarn)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
ewarnx(const char *fmt, ...)
 | 
			
		||||
ewarnx(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -704,9 +740,10 @@ ewarnx(const char *fmt, ...)
 | 
			
		||||
	}
 | 
			
		||||
	exit(EXIT_FAILURE);
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewarnx)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
eerror(const char *fmt, ...)
 | 
			
		||||
eerror(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -721,9 +758,10 @@ eerror(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("eerror");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eerror)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
eerrorx(const char *fmt, ...)
 | 
			
		||||
eerrorx(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -736,9 +774,10 @@ eerrorx(const char *fmt, ...)
 | 
			
		||||
	}
 | 
			
		||||
	exit(EXIT_FAILURE);
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eerrorx)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ebegin(const char *fmt, ...)
 | 
			
		||||
ebegin(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -754,9 +793,10 @@ ebegin(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ebegin");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ebegin)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
_eend(FILE *fp, int col, ECOLOR color, const char *msg)
 | 
			
		||||
_eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
 | 
			
		||||
{
 | 
			
		||||
	int i;
 | 
			
		||||
	int cols;
 | 
			
		||||
@@ -792,7 +832,7 @@ _eend(FILE *fp, int col, ECOLOR color, const char *msg)
 | 
			
		||||
 | 
			
		||||
static int EINFO_PRINTF(3, 0)
 | 
			
		||||
_do_eend(const char *cmd, int retval,
 | 
			
		||||
    const char *fmt, va_list ap)
 | 
			
		||||
    const char *EINFO_RESTRICT fmt, va_list ap)
 | 
			
		||||
{
 | 
			
		||||
	int col = 0;
 | 
			
		||||
	FILE *fp = stdout;
 | 
			
		||||
@@ -815,7 +855,7 @@ _do_eend(const char *cmd, int retval,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
eend(int retval, const char *fmt, ...)
 | 
			
		||||
eend(int retval, const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -827,9 +867,10 @@ eend(int retval, const char *fmt, ...)
 | 
			
		||||
	LASTCMD("eend");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eend)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewend(int retval, const char *fmt, ...)
 | 
			
		||||
ewend(int retval, const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -841,12 +882,14 @@ ewend(int retval, const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewend");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewend)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
ebracket(int col, ECOLOR color, const char *msg)
 | 
			
		||||
{
 | 
			
		||||
	_eend(stdout, col, color, msg);
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ebracket)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
eindent(void)
 | 
			
		||||
@@ -867,6 +910,7 @@ eindent(void)
 | 
			
		||||
	snprintf(num, 10, "%08d", amount);
 | 
			
		||||
	setenv("EINFO_INDENT", num, 1);
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eindent)
 | 
			
		||||
 | 
			
		||||
void eoutdent(void)
 | 
			
		||||
{
 | 
			
		||||
@@ -891,9 +935,10 @@ void eoutdent(void)
 | 
			
		||||
	}
 | 
			
		||||
	errno = serrno;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eoutdent)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
einfovn(const char *fmt, ...)
 | 
			
		||||
einfovn(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -906,9 +951,10 @@ einfovn(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("einfovn");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(einfovn)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewarnvn(const char *fmt, ...)
 | 
			
		||||
ewarnvn(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -921,9 +967,10 @@ ewarnvn(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewarnvn");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewarnvn)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
einfov(const char *fmt, ...)
 | 
			
		||||
einfov(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -937,9 +984,10 @@ einfov(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("einfov");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(einfov)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewarnv(const char *fmt, ...)
 | 
			
		||||
ewarnv(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -953,9 +1001,10 @@ ewarnv(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewarnv");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewarnv)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ebeginv(const char *fmt, ...)
 | 
			
		||||
ebeginv(const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	va_list ap;
 | 
			
		||||
@@ -972,9 +1021,10 @@ ebeginv(const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ebeginv");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ebeginv)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
eendv(int retval, const char *fmt, ...)
 | 
			
		||||
eendv(int retval, const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -986,9 +1036,10 @@ eendv(int retval, const char *fmt, ...)
 | 
			
		||||
	LASTCMD("eendv");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eendv)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
ewendv(int retval, const char *fmt, ...)
 | 
			
		||||
ewendv(int retval, const char *EINFO_RESTRICT fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
@@ -1000,6 +1051,7 @@ ewendv(int retval, const char *fmt, ...)
 | 
			
		||||
	LASTCMD("ewendv");
 | 
			
		||||
	return retval;
 | 
			
		||||
}
 | 
			
		||||
hidden_def(ewendv)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
eindentv(void)
 | 
			
		||||
@@ -1007,6 +1059,7 @@ eindentv(void)
 | 
			
		||||
	if (is_verbose())
 | 
			
		||||
		eindent();
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eindentv)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
eoutdentv(void)
 | 
			
		||||
@@ -1014,3 +1067,4 @@ eoutdentv(void)
 | 
			
		||||
	if (is_verbose())
 | 
			
		||||
		eoutdent();
 | 
			
		||||
}
 | 
			
		||||
hidden_def(eoutdentv)
 | 
			
		||||
@@ -1,21 +1,8 @@
 | 
			
		||||
PROG=		rc
 | 
			
		||||
SRCS=	\
 | 
			
		||||
	checkpath.c \
 | 
			
		||||
	einfo.c \
 | 
			
		||||
	fstabinfo.c \
 | 
			
		||||
	mountinfo.c \
 | 
			
		||||
	rc-applets.c \
 | 
			
		||||
	rc-depend.c \
 | 
			
		||||
	rc-logger.c \
 | 
			
		||||
	rc-misc.c \
 | 
			
		||||
	rc-plugin.c \
 | 
			
		||||
	rc-service.c \
 | 
			
		||||
	rc-status.c \
 | 
			
		||||
	rc-update.c \
 | 
			
		||||
	rc.c \
 | 
			
		||||
	runscript.c \
 | 
			
		||||
	start-stop-daemon.c \
 | 
			
		||||
	swclock.c
 | 
			
		||||
SRCS=		checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \
 | 
			
		||||
		rc-applets.c rc-depend.c rc-logger.c \
 | 
			
		||||
		rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \
 | 
			
		||||
		runscript.c rc.c swclock.c
 | 
			
		||||
 | 
			
		||||
CLEANFILES=	version.h
 | 
			
		||||
 | 
			
		||||
@@ -43,9 +30,9 @@ RC_SBINLINKS=	mark_service_starting mark_service_started \
 | 
			
		||||
ALL_LINKS=	${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS}
 | 
			
		||||
CLEANFILES+=	${ALL_LINKS}
 | 
			
		||||
 | 
			
		||||
CPPFLAGS+=	-I../includes -I../librc
 | 
			
		||||
LDFLAGS+=	-L../librc
 | 
			
		||||
LDADD+=		-lutil -lrc
 | 
			
		||||
CPPFLAGS+=	-I../includes -I../librc -I../libeinfo
 | 
			
		||||
LDFLAGS+=	-L../librc -L../libeinfo
 | 
			
		||||
LDADD+=		-lutil -lrc -leinfo
 | 
			
		||||
 | 
			
		||||
include ../../Makefile.inc
 | 
			
		||||
MK=		../../mk
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								src/test/einfo.data.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/test/einfo.data.list
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
EINFO_1.0
 | 
			
		||||
							
								
								
									
										52
									
								
								src/test/einfo.funcs.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/test/einfo.funcs.list
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
ebegin
 | 
			
		||||
ebegin@@EINFO_1.0
 | 
			
		||||
ebeginv
 | 
			
		||||
ebeginv@@EINFO_1.0
 | 
			
		||||
ebracket
 | 
			
		||||
ebracket@@EINFO_1.0
 | 
			
		||||
ecolor
 | 
			
		||||
ecolor@@EINFO_1.0
 | 
			
		||||
eend
 | 
			
		||||
eend@@EINFO_1.0
 | 
			
		||||
eendv
 | 
			
		||||
eendv@@EINFO_1.0
 | 
			
		||||
eerror
 | 
			
		||||
eerror@@EINFO_1.0
 | 
			
		||||
eerrorn
 | 
			
		||||
eerrorn@@EINFO_1.0
 | 
			
		||||
eerrorx
 | 
			
		||||
eerrorx@@EINFO_1.0
 | 
			
		||||
eindent
 | 
			
		||||
eindent@@EINFO_1.0
 | 
			
		||||
eindentv
 | 
			
		||||
eindentv@@EINFO_1.0
 | 
			
		||||
einfo
 | 
			
		||||
einfo@@EINFO_1.0
 | 
			
		||||
einfon
 | 
			
		||||
einfon@@EINFO_1.0
 | 
			
		||||
einfov
 | 
			
		||||
einfov@@EINFO_1.0
 | 
			
		||||
einfovn
 | 
			
		||||
einfovn@@EINFO_1.0
 | 
			
		||||
elog
 | 
			
		||||
elog@@EINFO_1.0
 | 
			
		||||
eoutdent
 | 
			
		||||
eoutdent@@EINFO_1.0
 | 
			
		||||
eoutdentv
 | 
			
		||||
eoutdentv@@EINFO_1.0
 | 
			
		||||
eprefix
 | 
			
		||||
eprefix@@EINFO_1.0
 | 
			
		||||
ewarn
 | 
			
		||||
ewarn@@EINFO_1.0
 | 
			
		||||
ewarnn
 | 
			
		||||
ewarnn@@EINFO_1.0
 | 
			
		||||
ewarnv
 | 
			
		||||
ewarnv@@EINFO_1.0
 | 
			
		||||
ewarnvn
 | 
			
		||||
ewarnvn@@EINFO_1.0
 | 
			
		||||
ewarnx
 | 
			
		||||
ewarnx@@EINFO_1.0
 | 
			
		||||
ewend
 | 
			
		||||
ewend@@EINFO_1.0
 | 
			
		||||
ewendv
 | 
			
		||||
ewendv@@EINFO_1.0
 | 
			
		||||
@@ -3,6 +3,8 @@
 | 
			
		||||
top_srcdir=${top_srcdir:-../..}
 | 
			
		||||
. ${top_srcdir}/test/setup_env.sh
 | 
			
		||||
 | 
			
		||||
libeinfo_srcdir="${srcdir}/../libeinfo"
 | 
			
		||||
libeinfo_builddir="${builddir}/../libeinfo"
 | 
			
		||||
librc_srcdir="${srcdir}/../librc"
 | 
			
		||||
librc_builddir="${builddir}/../librc"
 | 
			
		||||
rc_srcdir="${srcdir}/../rc"
 | 
			
		||||
@@ -18,6 +20,22 @@ checkit() {
 | 
			
		||||
 | 
			
		||||
ret=0
 | 
			
		||||
 | 
			
		||||
ebegin "Checking exported symbols in libeinfo.so (data)"
 | 
			
		||||
checkit einfo.data $(
 | 
			
		||||
readelf -Ws ${libeinfo_builddir}/libeinfo.so \
 | 
			
		||||
	| awk '$4 == "OBJECT" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \
 | 
			
		||||
	| LC_ALL=C sort -u
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
ebegin "Checking exported symbols in libeinfo.so (functions)"
 | 
			
		||||
checkit einfo.funcs $(
 | 
			
		||||
readelf -Ws ${libeinfo_builddir}/libeinfo.so \
 | 
			
		||||
	| awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $NF}' \
 | 
			
		||||
	| LC_ALL=C sort -u \
 | 
			
		||||
	| egrep -v \
 | 
			
		||||
		-e '^_(init|fini)$'
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
ebegin "Checking exported symbols in librc.so (data)"
 | 
			
		||||
checkit rc.data $(
 | 
			
		||||
readelf -Ws ${librc_builddir}/librc.so \
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user