Compare commits
11 Commits
funtoo-ope
...
funtoo-ope
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edb7e73b34 | ||
|
|
a1ab17889d | ||
|
|
4b37d3b16f | ||
|
|
82378bd92d | ||
|
|
e6df76a377 | ||
|
|
03c67bcc27 | ||
|
|
681a37e7bd | ||
|
|
56d592866c | ||
|
|
67b2255ebb | ||
|
|
993e7d7044 | ||
|
|
de88aff0a8 |
@@ -1,3 +1,3 @@
|
|||||||
NAME= openrc
|
NAME= openrc
|
||||||
VERSION= 0.13
|
VERSION= 0.12.1
|
||||||
PKG= ${NAME}-${VERSION}
|
PKG= ${NAME}-${VERSION}
|
||||||
|
|||||||
1
init.d/.gitignore
vendored
1
init.d/.gitignore
vendored
@@ -3,7 +3,6 @@ fsck
|
|||||||
hostname
|
hostname
|
||||||
local
|
local
|
||||||
localmount
|
localmount
|
||||||
loopback
|
|
||||||
moused
|
moused
|
||||||
netmount
|
netmount
|
||||||
network
|
network
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
include ../mk/net.mk
|
include ../mk/net.mk
|
||||||
|
|
||||||
DIR= ${INITDIR}
|
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 \
|
netmount.in root.in savecache.in swap.in swapfiles.in \
|
||||||
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
|
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
|
||||||
BIN= ${OBJS}
|
BIN= ${OBJS}
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,7 @@ depend()
|
|||||||
config /etc/fstab
|
config /etc/fstab
|
||||||
use afc-client amd autofs openvpn
|
use afc-client amd autofs openvpn
|
||||||
use dns
|
use dns
|
||||||
keyword -jail -prefix -vserver
|
keyword -jail -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
MAN3= einfo.3 \
|
MAN3= \
|
||||||
rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \
|
rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \
|
||||||
rc_runlevel.3 rc_service.3 rc_stringlist.3
|
rc_runlevel.3 rc_service.3 rc_stringlist.3
|
||||||
MAN8= rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \
|
MAN8= rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \
|
||||||
|
|||||||
210
man/einfo.3
210
man/einfo.3
@@ -1,210 +0,0 @@
|
|||||||
.\" 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
|
DIR= ${LIBDIR}/pkgconfig
|
||||||
SRCS= einfo.pc.in openrc.pc.in
|
SRCS= openrc.pc.in
|
||||||
INC= einfo.pc openrc.pc
|
INC= openrc.pc
|
||||||
|
|
||||||
.DEFAULT:
|
.DEFAULT:
|
||||||
${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h
|
${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
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
|
include ../mk/net.mk
|
||||||
|
|
||||||
BOOT= bootmisc fsck hostname localmount loopback \
|
BOOT= bootmisc fsck hostname localmount \
|
||||||
root swap swapfiles sysctl urandom ${BOOT-${OS}}
|
root swap swapfiles sysctl urandom ${BOOT-${OS}}
|
||||||
DEFAULT= local netmount
|
DEFAULT= local netmount
|
||||||
SHUTDOWN= savecache ${SHUTDOWN-${OS}}
|
SHUTDOWN= savecache ${SHUTDOWN-${OS}}
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ cgroup_set_limits()
|
|||||||
|
|
||||||
cgroup_cleanup()
|
cgroup_cleanup()
|
||||||
{
|
{
|
||||||
yesno "${rc_cgroup_cleanup:-no}" && cgroup_running || return 0
|
cgroup_running || return 0
|
||||||
ebegin "starting cgroups cleanup"
|
ebegin "starting cgroups cleanup"
|
||||||
for sig in TERM QUIT INT; do
|
for sig in TERM QUIT INT; do
|
||||||
cgroup_get_pids || { eend 0 "finished" ; return 0 ; }
|
cgroup_get_pids || { eend 0 "finished" ; return 0 ; }
|
||||||
|
|||||||
@@ -308,6 +308,7 @@ while [ -n "$1" ]; do
|
|||||||
fi
|
fi
|
||||||
[ "$(command -v cgroup_cleanup)" = "cgroup_cleanup" -a \
|
[ "$(command -v cgroup_cleanup)" = "cgroup_cleanup" -a \
|
||||||
"$1" = "stop" ] && \
|
"$1" = "stop" ] && \
|
||||||
|
yesno "${rc_cgroup_cleanup}" && \
|
||||||
cgroup_cleanup
|
cgroup_cleanup
|
||||||
shift
|
shift
|
||||||
continue 2
|
continue 2
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
||||||
# Released under the 2-clause BSD license.
|
# Released under the 2-clause BSD license.
|
||||||
|
|
||||||
SUBDIR= test libeinfo librc rc
|
SUBDIR= test librc rc
|
||||||
|
|
||||||
ifeq (${MKTOOLS},yes)
|
ifeq (${MKTOOLS},yes)
|
||||||
SUBDIR+= tools
|
SUBDIR+= tools
|
||||||
|
|||||||
1
src/libeinfo/.gitignore
vendored
1
src/libeinfo/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
libeinfo.so.1
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
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:
|
|
||||||
*;
|
|
||||||
};
|
|
||||||
@@ -856,7 +856,7 @@ rc_deptree_update(void)
|
|||||||
* work for them. This doesn't stop them from being run directly. */
|
* work for them. This doesn't stop them from being run directly. */
|
||||||
if (sys) {
|
if (sys) {
|
||||||
len = strlen(sys);
|
len = strlen(sys);
|
||||||
nosys = xmalloc(len + 1);
|
nosys = xmalloc(len + 2);
|
||||||
nosys[0] = '-';
|
nosys[0] = '-';
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
nosys[i + 1] = (char)tolower((unsigned char)sys[i]);
|
nosys[i + 1] = (char)tolower((unsigned char)sys[i]);
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ file_regex(const char *file, const char *regex)
|
|||||||
str += strlen(str) + 1;
|
str += strlen(str) + 1;
|
||||||
/* len is the size of allocated buffer and we don't
|
/* len is the size of allocated buffer and we don't
|
||||||
want call regexec BUFSIZE times. find next str */
|
want call regexec BUFSIZE times. find next str */
|
||||||
while (*str == '\0' && str < line + len)
|
while (str < line + len && *str == '\0')
|
||||||
str++;
|
str++;
|
||||||
} while (str < line + len);
|
} while (str < line + len);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,21 @@
|
|||||||
PROG= rc
|
PROG= rc
|
||||||
SRCS= checkpath.c fstabinfo.c mountinfo.c start-stop-daemon.c \
|
SRCS= \
|
||||||
rc-applets.c rc-depend.c rc-logger.c \
|
checkpath.c \
|
||||||
rc-misc.c rc-plugin.c rc-service.c rc-status.c rc-update.c \
|
einfo.c \
|
||||||
runscript.c rc.c swclock.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
|
||||||
|
|
||||||
CLEANFILES= version.h
|
CLEANFILES= version.h
|
||||||
|
|
||||||
@@ -30,9 +43,9 @@ RC_SBINLINKS= mark_service_starting mark_service_started \
|
|||||||
ALL_LINKS= ${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS}
|
ALL_LINKS= ${BINLINKS} ${SBINLINKS} ${RC_BINLINKS} ${RC_SBINLINKS}
|
||||||
CLEANFILES+= ${ALL_LINKS}
|
CLEANFILES+= ${ALL_LINKS}
|
||||||
|
|
||||||
CPPFLAGS+= -I../includes -I../librc -I../libeinfo
|
CPPFLAGS+= -I../includes -I../librc
|
||||||
LDFLAGS+= -L../librc -L../libeinfo
|
LDFLAGS+= -L../librc
|
||||||
LDADD+= -lutil -lrc -leinfo
|
LDADD+= -lutil -lrc
|
||||||
|
|
||||||
include ../../Makefile.inc
|
include ../../Makefile.inc
|
||||||
MK= ../../mk
|
MK= ../../mk
|
||||||
|
|||||||
@@ -52,34 +52,6 @@ const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples";
|
|||||||
|
|
||||||
#include "einfo.h"
|
#include "einfo.h"
|
||||||
#include "helpers.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 */
|
/* Incase we cannot work out how many columns from ioctl, supply a default */
|
||||||
#define DEFAULT_COLS 80
|
#define DEFAULT_COLS 80
|
||||||
@@ -352,7 +324,7 @@ tgoto(const char *cap, int col, int line)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
colour_terminal(FILE * EINFO_RESTRICT f)
|
colour_terminal(FILE *f)
|
||||||
{
|
{
|
||||||
static int in_colour = -1;
|
static int in_colour = -1;
|
||||||
char *e, *ee, *end, *d, *p;
|
char *e, *ee, *end, *d, *p;
|
||||||
@@ -499,7 +471,7 @@ colour_terminal(FILE * EINFO_RESTRICT f)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
get_term_columns(FILE * EINFO_RESTRICT stream)
|
get_term_columns(FILE *stream)
|
||||||
{
|
{
|
||||||
struct winsize ws;
|
struct winsize ws;
|
||||||
char *env = getenv("COLUMNS");
|
char *env = getenv("COLUMNS");
|
||||||
@@ -519,14 +491,13 @@ get_term_columns(FILE * EINFO_RESTRICT stream)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
eprefix(const char *EINFO_RESTRICT prefix)
|
eprefix(const char *prefix)
|
||||||
{
|
{
|
||||||
_eprefix = prefix;
|
_eprefix = prefix;
|
||||||
}
|
}
|
||||||
hidden_def(eprefix)
|
|
||||||
|
|
||||||
static void EINFO_PRINTF(2, 0)
|
static void EINFO_PRINTF(2, 0)
|
||||||
elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap)
|
elogv(int level, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
char *e = getenv("EINFO_LOG");
|
char *e = getenv("EINFO_LOG");
|
||||||
va_list apc;
|
va_list apc;
|
||||||
@@ -542,7 +513,7 @@ elogv(int level, const char *EINFO_RESTRICT fmt, va_list ap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
elog(int level, const char *EINFO_RESTRICT fmt, ...)
|
elog(int level, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -550,10 +521,9 @@ elog(int level, const char *EINFO_RESTRICT fmt, ...)
|
|||||||
elogv(level, fmt, ap);
|
elogv(level, fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
hidden_def(elog)
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_eindent(FILE * EINFO_RESTRICT stream)
|
_eindent(FILE *stream)
|
||||||
{
|
{
|
||||||
char *env = getenv("EINFO_INDENT");
|
char *env = getenv("EINFO_INDENT");
|
||||||
int amount = 0;
|
int amount = 0;
|
||||||
@@ -577,7 +547,7 @@ _eindent(FILE * EINFO_RESTRICT stream)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
_ecolor(FILE * EINFO_RESTRICT f, ECOLOR color)
|
_ecolor(FILE *f, ECOLOR color)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
@@ -589,7 +559,6 @@ _ecolor(FILE * EINFO_RESTRICT f, ECOLOR color)
|
|||||||
return ecolors_str[i];
|
return ecolors_str[i];
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
hidden_def(ecolor)
|
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
ecolor(ECOLOR color)
|
ecolor(ECOLOR color)
|
||||||
@@ -615,7 +584,7 @@ ecolor(ECOLOR color)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int EINFO_PRINTF(3, 0)
|
static int EINFO_PRINTF(3, 0)
|
||||||
_einfo(FILE *f, ECOLOR color, const char *EINFO_RESTRICT fmt, va_list va)
|
_einfo(FILE *f, ECOLOR color, const char *fmt, va_list va)
|
||||||
{
|
{
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
char *last = getenv("EINFO_LASTCMD");
|
char *last = getenv("EINFO_LASTCMD");
|
||||||
@@ -643,7 +612,7 @@ static int EINFO_PRINTF(3, 0)
|
|||||||
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap)
|
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap)
|
||||||
|
|
||||||
int
|
int
|
||||||
einfon(const char *EINFO_RESTRICT fmt, ...)
|
einfon(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -656,10 +625,9 @@ einfon(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("einfon");
|
LASTCMD("einfon");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(einfon)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewarnn(const char *EINFO_RESTRICT fmt, ...)
|
ewarnn(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -672,10 +640,9 @@ ewarnn(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewarnn");
|
LASTCMD("ewarnn");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewarnn)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
eerrorn(const char *EINFO_RESTRICT fmt, ...)
|
eerrorn(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -688,10 +655,9 @@ eerrorn(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("errorn");
|
LASTCMD("errorn");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(eerrorn)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
einfo(const char *EINFO_RESTRICT fmt, ...)
|
einfo(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -705,10 +671,9 @@ einfo(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("einfo");
|
LASTCMD("einfo");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(einfo)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewarn(const char *EINFO_RESTRICT fmt, ...)
|
ewarn(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -723,10 +688,9 @@ ewarn(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewarn");
|
LASTCMD("ewarn");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewarn)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ewarnx(const char *EINFO_RESTRICT fmt, ...)
|
ewarnx(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -740,10 +704,9 @@ ewarnx(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
}
|
}
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
hidden_def(ewarnx)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
eerror(const char *EINFO_RESTRICT fmt, ...)
|
eerror(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -758,10 +721,9 @@ eerror(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("eerror");
|
LASTCMD("eerror");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(eerror)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
eerrorx(const char *EINFO_RESTRICT fmt, ...)
|
eerrorx(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -774,10 +736,9 @@ eerrorx(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
}
|
}
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
hidden_def(eerrorx)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ebegin(const char *EINFO_RESTRICT fmt, ...)
|
ebegin(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -793,10 +754,9 @@ ebegin(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ebegin");
|
LASTCMD("ebegin");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ebegin)
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
|
_eend(FILE *fp, int col, ECOLOR color, const char *msg)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int cols;
|
int cols;
|
||||||
@@ -832,7 +792,7 @@ _eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
|
|||||||
|
|
||||||
static int EINFO_PRINTF(3, 0)
|
static int EINFO_PRINTF(3, 0)
|
||||||
_do_eend(const char *cmd, int retval,
|
_do_eend(const char *cmd, int retval,
|
||||||
const char *EINFO_RESTRICT fmt, va_list ap)
|
const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
int col = 0;
|
int col = 0;
|
||||||
FILE *fp = stdout;
|
FILE *fp = stdout;
|
||||||
@@ -855,7 +815,7 @@ _do_eend(const char *cmd, int retval,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
eend(int retval, const char *EINFO_RESTRICT fmt, ...)
|
eend(int retval, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -867,10 +827,9 @@ eend(int retval, const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("eend");
|
LASTCMD("eend");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(eend)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewend(int retval, const char *EINFO_RESTRICT fmt, ...)
|
ewend(int retval, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -882,14 +841,12 @@ ewend(int retval, const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewend");
|
LASTCMD("ewend");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewend)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ebracket(int col, ECOLOR color, const char *msg)
|
ebracket(int col, ECOLOR color, const char *msg)
|
||||||
{
|
{
|
||||||
_eend(stdout, col, color, msg);
|
_eend(stdout, col, color, msg);
|
||||||
}
|
}
|
||||||
hidden_def(ebracket)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
eindent(void)
|
eindent(void)
|
||||||
@@ -910,7 +867,6 @@ eindent(void)
|
|||||||
snprintf(num, 10, "%08d", amount);
|
snprintf(num, 10, "%08d", amount);
|
||||||
setenv("EINFO_INDENT", num, 1);
|
setenv("EINFO_INDENT", num, 1);
|
||||||
}
|
}
|
||||||
hidden_def(eindent)
|
|
||||||
|
|
||||||
void eoutdent(void)
|
void eoutdent(void)
|
||||||
{
|
{
|
||||||
@@ -935,10 +891,9 @@ void eoutdent(void)
|
|||||||
}
|
}
|
||||||
errno = serrno;
|
errno = serrno;
|
||||||
}
|
}
|
||||||
hidden_def(eoutdent)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
einfovn(const char *EINFO_RESTRICT fmt, ...)
|
einfovn(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -951,10 +906,9 @@ einfovn(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("einfovn");
|
LASTCMD("einfovn");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(einfovn)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewarnvn(const char *EINFO_RESTRICT fmt, ...)
|
ewarnvn(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -967,10 +921,9 @@ ewarnvn(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewarnvn");
|
LASTCMD("ewarnvn");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewarnvn)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
einfov(const char *EINFO_RESTRICT fmt, ...)
|
einfov(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -984,10 +937,9 @@ einfov(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("einfov");
|
LASTCMD("einfov");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(einfov)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewarnv(const char *EINFO_RESTRICT fmt, ...)
|
ewarnv(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -1001,10 +953,9 @@ ewarnv(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewarnv");
|
LASTCMD("ewarnv");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewarnv)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ebeginv(const char *EINFO_RESTRICT fmt, ...)
|
ebeginv(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
@@ -1021,10 +972,9 @@ ebeginv(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ebeginv");
|
LASTCMD("ebeginv");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ebeginv)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
eendv(int retval, const char *EINFO_RESTRICT fmt, ...)
|
eendv(int retval, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -1036,10 +986,9 @@ eendv(int retval, const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("eendv");
|
LASTCMD("eendv");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(eendv)
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ewendv(int retval, const char *EINFO_RESTRICT fmt, ...)
|
ewendv(int retval, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
@@ -1051,7 +1000,6 @@ ewendv(int retval, const char *EINFO_RESTRICT fmt, ...)
|
|||||||
LASTCMD("ewendv");
|
LASTCMD("ewendv");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
hidden_def(ewendv)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
eindentv(void)
|
eindentv(void)
|
||||||
@@ -1059,7 +1007,6 @@ eindentv(void)
|
|||||||
if (is_verbose())
|
if (is_verbose())
|
||||||
eindent();
|
eindent();
|
||||||
}
|
}
|
||||||
hidden_def(eindentv)
|
|
||||||
|
|
||||||
void
|
void
|
||||||
eoutdentv(void)
|
eoutdentv(void)
|
||||||
@@ -1067,4 +1014,3 @@ eoutdentv(void)
|
|||||||
if (is_verbose())
|
if (is_verbose())
|
||||||
eoutdent();
|
eoutdent();
|
||||||
}
|
}
|
||||||
hidden_def(eoutdentv)
|
|
||||||
@@ -37,19 +37,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdbool.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 */
|
/*! @brief Color types to use */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
@@ -65,14 +52,14 @@ typedef enum
|
|||||||
const char *ecolor(ECOLOR);
|
const char *ecolor(ECOLOR);
|
||||||
|
|
||||||
/*! @brief Writes to syslog. */
|
/*! @brief Writes to syslog. */
|
||||||
void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
void elog(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Display informational messages.
|
* @brief Display informational messages.
|
||||||
*
|
*
|
||||||
* The einfo family of functions display messages in a consistent manner
|
* The einfo family of functions display messages in a consistent manner
|
||||||
* across applications. Basically they prefix the message with
|
* Basically they prefix the message with " * ".
|
||||||
* " * ". If the terminal can handle color then we color the * based on
|
* If the terminal can handle color then we color the * based on
|
||||||
* the command used. Otherwise we are identical to the printf function.
|
* the command used. Otherwise we are identical to the printf function.
|
||||||
*
|
*
|
||||||
* - einfo - green
|
* - einfo - green
|
||||||
@@ -83,22 +70,22 @@ void elog(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
|||||||
* The v suffix means only print if EINFO_VERBOSE is yes.
|
* The v suffix means only print if EINFO_VERBOSE is yes.
|
||||||
*/
|
*/
|
||||||
/*@{*/
|
/*@{*/
|
||||||
int einfon(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int einfon(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int ewarnn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ewarnn(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int eerrorn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int eerrorn(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int einfo(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int einfo(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int ewarn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ewarn(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
void ewarnx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
|
void ewarnx(const char *, ...) EINFO_XPRINTF(1, 2);
|
||||||
int eerror(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int eerror(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
void eerrorx(const char * __EINFO_RESTRICT, ...) EINFO_XPRINTF(1, 2);
|
void eerrorx(const char *, ...) EINFO_XPRINTF(1, 2);
|
||||||
|
|
||||||
int einfovn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int einfovn(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int ewarnvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ewarnvn(const char * , ...) EINFO_PRINTF(1, 2);
|
||||||
int ebeginvn(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ebeginvn(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int eendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int eendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
int ewendvn(int, const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int ewendvn(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
int einfov(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int einfov(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ewarnv(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/*! @ingroup ebegin
|
/*! @ingroup ebegin
|
||||||
@@ -106,8 +93,8 @@ int ewarnv(const char * __EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
|||||||
*
|
*
|
||||||
* Similar to einfo, but we add ... to the end of the message */
|
* Similar to einfo, but we add ... to the end of the message */
|
||||||
/*@{*/
|
/*@{*/
|
||||||
int ebeginv(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ebeginv(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
int ebegin(const char *, ...) EINFO_PRINTF(1, 2);
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/*! @ingroup eend
|
/*! @ingroup eend
|
||||||
@@ -119,12 +106,12 @@ int ebegin(const char * EINFO_RESTRICT, ...) EINFO_PRINTF(1, 2);
|
|||||||
*
|
*
|
||||||
* ebracket allows you to specifiy the position, color and message */
|
* ebracket allows you to specifiy the position, color and message */
|
||||||
/*@{*/
|
/*@{*/
|
||||||
int eend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int eend(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
int ewend(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int ewend(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
void ebracket(int, ECOLOR, const char * EINFO_RESTRICT);
|
void ebracket(int, ECOLOR, const char *);
|
||||||
|
|
||||||
int eendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int eendv(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
int ewendv(int, const char * EINFO_RESTRICT, ...) EINFO_PRINTF(2, 3);
|
int ewendv(int, const char *, ...) EINFO_PRINTF(2, 3);
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/*! @ingroup eindent
|
/*! @ingroup eindent
|
||||||
@@ -138,7 +125,6 @@ void eindentv(void);
|
|||||||
void eoutdentv(void);
|
void eoutdentv(void);
|
||||||
|
|
||||||
/*! @brief Prefix each einfo line with something */
|
/*! @brief Prefix each einfo line with something */
|
||||||
void eprefix(const char * EINFO_RESTRICT);
|
void eprefix(const char *);
|
||||||
|
|
||||||
__END_DECLS
|
|
||||||
#endif
|
#endif
|
||||||
@@ -316,12 +316,12 @@ get_pid(const char *pidfile)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((fp = fopen(pidfile, "r")) == NULL) {
|
if ((fp = fopen(pidfile, "r")) == NULL) {
|
||||||
eerror("%s: fopen `%s': %s", applet, pidfile, strerror(errno));
|
ewarnv("%s: fopen `%s': %s", applet, pidfile, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fscanf(fp, "%d", &pid) != 1) {
|
if (fscanf(fp, "%d", &pid) != 1) {
|
||||||
eerror("%s: no pid found in `%s'", applet, pidfile);
|
ewarnv("%s: no pid found in `%s'", applet, pidfile);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -452,7 +452,7 @@ run_stop_schedule(const char *exec, const char *const *argv,
|
|||||||
nloops++)
|
nloops++)
|
||||||
{
|
{
|
||||||
if ((nrunning = do_stop(exec, argv,
|
if ((nrunning = do_stop(exec, argv,
|
||||||
pid, uid, 0, true)) == 0)
|
pid, uid, 0, test)) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
@@ -1075,7 +1075,7 @@ start_stop_daemon(int argc, char **argv)
|
|||||||
pid = 0;
|
pid = 0;
|
||||||
|
|
||||||
if (do_stop(exec, (const char * const *)margv, pid, uid,
|
if (do_stop(exec, (const char * const *)margv, pid, uid,
|
||||||
0, true) > 0)
|
0, test) > 0)
|
||||||
eerrorx("%s: %s is already running", applet, exec);
|
eerrorx("%s: %s is already running", applet, exec);
|
||||||
|
|
||||||
if (test) {
|
if (test) {
|
||||||
@@ -1352,7 +1352,7 @@ start_stop_daemon(int argc, char **argv)
|
|||||||
} else
|
} else
|
||||||
pid = 0;
|
pid = 0;
|
||||||
if (do_stop(exec, (const char *const *)margv,
|
if (do_stop(exec, (const char *const *)margv,
|
||||||
pid, uid, 0, true) > 0)
|
pid, uid, 0, test) > 0)
|
||||||
alive = true;
|
alive = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
EINFO_1.0
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
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,8 +3,6 @@
|
|||||||
top_srcdir=${top_srcdir:-../..}
|
top_srcdir=${top_srcdir:-../..}
|
||||||
. ${top_srcdir}/test/setup_env.sh
|
. ${top_srcdir}/test/setup_env.sh
|
||||||
|
|
||||||
libeinfo_srcdir="${srcdir}/../libeinfo"
|
|
||||||
libeinfo_builddir="${builddir}/../libeinfo"
|
|
||||||
librc_srcdir="${srcdir}/../librc"
|
librc_srcdir="${srcdir}/../librc"
|
||||||
librc_builddir="${builddir}/../librc"
|
librc_builddir="${builddir}/../librc"
|
||||||
rc_srcdir="${srcdir}/../rc"
|
rc_srcdir="${srcdir}/../rc"
|
||||||
@@ -20,22 +18,6 @@ checkit() {
|
|||||||
|
|
||||||
ret=0
|
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)"
|
ebegin "Checking exported symbols in librc.so (data)"
|
||||||
checkit rc.data $(
|
checkit rc.data $(
|
||||||
readelf -Ws ${librc_builddir}/librc.so \
|
readelf -Ws ${librc_builddir}/librc.so \
|
||||||
|
|||||||
Reference in New Issue
Block a user