Move RC_ to EINFO_ for all env vars related to einfo.

This commit is contained in:
Roy Marples 2007-12-06 10:48:00 +00:00
parent a31c7cc61e
commit a178d53202
14 changed files with 129 additions and 78 deletions

View File

@ -26,14 +26,14 @@
RC_GOT_FUNCTIONS="yes" RC_GOT_FUNCTIONS="yes"
eindent() { eindent() {
RC_EINDENT=$((${RC_EINDENT:-0} + 2)) EINFO_INDENT=$((${EINFO_INDENT:-0} + 2))
[ "${RC_EINDENT}" -gt 40 ] && RC_EINDENT=40 [ "${EINFO_INDENT}" -gt 40 ] && EINFO_INDENT=40
export RC_EINDENT export EINFO_INDENT
} }
eoutdent() { eoutdent() {
RC_EINDENT=$((${RC_EINDENT:-0} - 2)) EINFO_INDENT=$((${EINFO_INDENT:-0} - 2))
[ "${RC_EINDENT}" -lt 0 ] && RC_EINDENT=0 [ "${EINFO_INDENT}" -lt 0 ] && EINFO_INDENT=0
return 0 return 0
} }
@ -166,12 +166,12 @@ unset _sanitize_path
for arg; do for arg; do
case "${arg}" in case "${arg}" in
--nocolor|--nocolour|-C) --nocolor|--nocolour|-C)
export RC_NOCOLOR="yes" export EINFO_COLOR="NO"
;; ;;
esac esac
done done
if [ -z "${GOOD}" ] && ! yesno "${RC_NOCOLOR}"; then if [ -z "${GOOD}" ] && yesno ${EINFO_COLOR:-YES}; then
eval $(eval_ecolors) eval $(eval_ecolors)
fi fi

View File

@ -40,10 +40,10 @@
"Run verbosely", \ "Run verbosely", \
"Run quietly" "Run quietly"
#define case_RC_COMMON_getopt_case_C setenv ("RC_NOCOLOR", "yes", 1); #define case_RC_COMMON_getopt_case_C setenv ("EINFO_COLOR", "NO", 1);
#define case_RC_COMMON_getopt_case_h usage (EXIT_SUCCESS); #define case_RC_COMMON_getopt_case_h usage (EXIT_SUCCESS);
#define case_RC_COMMON_getopt_case_v setenv ("RC_VERBOSE", "yes", 1); #define case_RC_COMMON_getopt_case_v setenv ("EINFO_VERBOSE", "YES", 1);
#define case_RC_COMMON_getopt_case_q setenv ("RC_QUIET", "yes", 1); #define case_RC_COMMON_getopt_case_q setenv ("EINFO_QUIET", "YES", 1);
#define case_RC_COMMON_getopt_default usage (EXIT_FAILURE); #define case_RC_COMMON_getopt_default usage (EXIT_FAILURE);
#define case_RC_COMMON_GETOPT \ #define case_RC_COMMON_GETOPT \

View File

@ -71,7 +71,7 @@ void elog (int __level, const char *__fmt, ...) __EEND_PRINTF;
* - eerror - red * - eerror - red
* *
* The n suffix denotes that no new line should be printed. * The n suffix denotes that no new line should be printed.
* The v suffix means only print if RC_VERBOSE is yes. * The v suffix means only print if EINFO_VERBOSE is yes.
*/ */
/*@{*/ /*@{*/
int einfon (const char *__fmt, ...) __EINFO_PRINTF; int einfon (const char *__fmt, ...) __EINFO_PRINTF;

View File

@ -205,7 +205,7 @@ int fstabinfo (int argc, char **argv)
} }
/* No point in outputting if quiet */ /* No point in outputting if quiet */
if (rc_yesno (getenv ("RC_QUIET"))) if (rc_yesno (getenv ("EINFO_QUIET")))
continue; continue;
switch (output) { switch (output) {

View File

@ -86,8 +86,6 @@ hidden_proto(ewendv)
#define OK "ok" #define OK "ok"
#define NOT_OK "!!" #define NOT_OK "!!"
#define CHECK_VERBOSE if (! is_env ("RC_VERBOSE", "yes")) return 0
/* Number of spaces for an indent */ /* Number of spaces for an indent */
#define INDENT_WIDTH 2 #define INDENT_WIDTH 2
@ -154,18 +152,50 @@ static bool term_is_cons25 = false;
/* A pointer to a string to prefix to einfo/ewarn/eerror messages */ /* A pointer to a string to prefix to einfo/ewarn/eerror messages */
static const char *_eprefix = NULL; static const char *_eprefix = NULL;
static bool is_env (const char *var, const char *val) static bool yesno (const char *value)
{ {
char *v; if (! value) {
errno = ENOENT;
if (! var)
return (false); return (false);
}
v = getenv (var); if (strcasecmp (value, "yes") == 0 ||
if (! v) strcasecmp (value, "y") == 0 ||
return (val ? false : true); strcasecmp (value, "true") == 0 ||
strcasecmp (value, "on") == 0 ||
strcasecmp (value, "1") == 0)
return (true);
return (strcasecmp (v, val) ? false : true); if (strcasecmp (value, "no") != 0 &&
strcasecmp (value, "n") != 0 &&
strcasecmp (value, "false") != 0 &&
strcasecmp (value, "off") != 0 &&
strcasecmp (value, "0") != 0)
errno = EINVAL;
return (false);
}
static bool noyes (const char *value) {
int serrno = errno;
bool retval;
errno = 0;
retval = yesno (value);
if (errno == 0) {
retval = ! retval;
errno = serrno;
}
return (retval);
}
static bool is_quiet() {
return (yesno (getenv ("EINFO_QUIET")));
}
static bool is_verbose() {
return (yesno (getenv ("EINFO_VERBOSE")));
} }
static bool colour_terminal (FILE *f) static bool colour_terminal (FILE *f)
@ -176,7 +206,7 @@ static bool colour_terminal (FILE *f)
if (f && ! isatty (fileno (f))) if (f && ! isatty (fileno (f)))
return (false); return (false);
if (is_env ("RC_NOCOLOR", "yes")) if (noyes (getenv ("EINFO_COLOR")))
return (false); return (false);
if (in_colour == 0) if (in_colour == 0)
@ -234,7 +264,7 @@ hidden_def(eprefix)
static void elogv (int level, const char *fmt, va_list ap) static void elogv (int level, const char *fmt, va_list ap)
{ {
char *e = getenv ("RC_ELOG"); char *e = getenv ("EINFO_LOG");
va_list apc; va_list apc;
if (fmt && e) { if (fmt && e) {
@ -259,7 +289,7 @@ hidden_def(elog)
static int _eindent (FILE *stream) static int _eindent (FILE *stream)
{ {
char *env = getenv ("RC_EINDENT"); char *env = getenv ("EINFO_INDENT");
int amount = 0; int amount = 0;
char indent[INDENT_MAX]; char indent[INDENT_MAX];
@ -377,7 +407,7 @@ int einfon (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (! fmt || is_env ("RC_QUIET", "yes")) if (! fmt || is_quiet ())
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -393,7 +423,7 @@ int ewarnn (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (! fmt || is_env ("RC_QUIET", "yes")) if (! fmt || is_quiet ())
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -422,7 +452,7 @@ int einfo (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (! fmt || is_env ("RC_QUIET", "yes")) if (! fmt || is_quiet())
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -439,7 +469,7 @@ int ewarn (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (! fmt || is_env ("RC_QUIET", "yes")) if (! fmt || is_quiet ())
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -457,7 +487,7 @@ void ewarnx (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (fmt && ! is_env ("RC_QUIET", "yes")) { if (fmt && ! is_quiet ()) {
va_start (ap, fmt); va_start (ap, fmt);
elogv (LOG_WARNING, fmt, ap); elogv (LOG_WARNING, fmt, ap);
retval = _ewarnvn (fmt, ap); retval = _ewarnvn (fmt, ap);
@ -507,7 +537,7 @@ int ebegin (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
if (! fmt || is_env ("RC_QUIET", "yes")) if (! fmt || is_quiet ())
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -584,7 +614,7 @@ int eend (int retval, const char *fmt, ...)
{ {
va_list ap; va_list ap;
if (is_env ("RC_QUIET", "yes")) if (is_quiet ())
return (retval); return (retval);
va_start (ap, fmt); va_start (ap, fmt);
@ -599,7 +629,7 @@ int ewend (int retval, const char *fmt, ...)
{ {
va_list ap; va_list ap;
if (is_env ("RC_QUIET", "yes")) if (is_quiet ())
return (retval); return (retval);
va_start (ap, fmt); va_start (ap, fmt);
@ -618,7 +648,7 @@ hidden_def(ebracket)
void eindent (void) void eindent (void)
{ {
char *env = getenv ("RC_EINDENT"); char *env = getenv ("EINFO_INDENT");
int amount = 0; int amount = 0;
char num[10]; char num[10];
@ -634,13 +664,13 @@ void eindent (void)
amount = INDENT_MAX; amount = INDENT_MAX;
snprintf (num, 10, "%08d", amount); snprintf (num, 10, "%08d", amount);
setenv ("RC_EINDENT", num, 1); setenv ("EINFO_INDENT", num, 1);
} }
hidden_def(eindent) hidden_def(eindent)
void eoutdent (void) void eoutdent (void)
{ {
char *env = getenv ("RC_EINDENT"); char *env = getenv ("EINFO_INDENT");
int amount = 0; int amount = 0;
char num[10]; char num[10];
@ -655,10 +685,10 @@ void eoutdent (void)
amount -= INDENT_WIDTH; amount -= INDENT_WIDTH;
if (amount <= 0) if (amount <= 0)
unsetenv ("RC_EINDENT"); unsetenv ("EINFO_EINDENT");
else { else {
snprintf (num, 10, "%08d", amount); snprintf (num, 10, "%08d", amount);
setenv ("RC_EINDENT", num, 1); setenv ("EINFO_EINDENT", num, 1);
} }
} }
hidden_def(eoutdent) hidden_def(eoutdent)
@ -668,9 +698,7 @@ int einfovn (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
CHECK_VERBOSE; if (! fmt || ! is_verbose ())
if (! fmt)
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -686,9 +714,7 @@ int ewarnvn (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
CHECK_VERBOSE; if (! fmt || ! is_verbose ())
if (! fmt)
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -704,9 +730,7 @@ int einfov (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
CHECK_VERBOSE; if (! fmt || ! is_verbose ())
if (! fmt)
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -723,9 +747,7 @@ int ewarnv (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
CHECK_VERBOSE; if (! fmt || ! is_verbose ())
if (! fmt)
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -742,9 +764,7 @@ int ebeginv (const char *fmt, ...)
int retval; int retval;
va_list ap; va_list ap;
CHECK_VERBOSE; if (! fmt || ! is_verbose ())
if (! fmt)
return (0); return (0);
va_start (ap, fmt); va_start (ap, fmt);
@ -762,7 +782,8 @@ int eendv (int retval, const char *fmt, ...)
{ {
va_list ap; va_list ap;
CHECK_VERBOSE; if (! is_verbose ())
return (0);
va_start (ap, fmt); va_start (ap, fmt);
_do_eend ("eendv", retval, fmt, ap); _do_eend ("eendv", retval, fmt, ap);
@ -776,7 +797,8 @@ int ewendv (int retval, const char *fmt, ...)
{ {
va_list ap; va_list ap;
CHECK_VERBOSE; if (! is_verbose ())
return (0);
va_start (ap, fmt); va_start (ap, fmt);
_do_eend ("ewendv", retval, fmt, ap); _do_eend ("ewendv", retval, fmt, ap);
@ -788,14 +810,14 @@ hidden_def(ewendv)
void eindentv (void) void eindentv (void)
{ {
if (is_env ("RC_VERBOSE", "yes")) if (is_verbose ())
eindent (); eindent ();
} }
hidden_def(eindentv) hidden_def(eindentv)
void eoutdentv (void) void eoutdentv (void)
{ {
if (is_env ("RC_VERBOSE", "yes")) if (is_verbose ())
eoutdent (); eoutdent ();
} }
hidden_def(eoutdentv) hidden_def(eoutdentv)

View File

@ -35,7 +35,7 @@
bool rc_yesno (const char *value) bool rc_yesno (const char *value)
{ {
if (! value) { if (! value) {
errno = EINVAL; errno = ENOENT;
return (false); return (false);
} }

View File

@ -443,7 +443,7 @@ int mountinfo (int argc, char **argv)
rc_strlist_reverse (nodes); rc_strlist_reverse (nodes);
result = EXIT_FAILURE; result = EXIT_FAILURE;
quiet = rc_yesno (getenv ("RC_QUIET")); quiet = rc_yesno (getenv ("EINFO_QUIET"));
STRLIST_FOREACH (nodes, n, i) { STRLIST_FOREACH (nodes, n, i) {
if (point_regex && regexec (point_regex, n, 0, NULL, 0) != 0) if (point_regex && regexec (point_regex, n, 0, NULL, 0) != 0)
continue; continue;

View File

@ -63,7 +63,7 @@ static void _free_rc_conf (void)
rc_strlist_free (rc_conf); rc_strlist_free (rc_conf);
} }
bool rc_conf_yesno (const char *setting) char *rc_conf_value (const char *setting)
{ {
if (! rc_conf) { if (! rc_conf) {
char *line; char *line;
@ -88,10 +88,14 @@ bool rc_conf_yesno (const char *setting)
p++; p++;
} }
} }
} }
return (rc_yesno (rc_config_value (rc_conf, setting))); return (rc_config_value (rc_conf, setting));
}
bool rc_conf_yesno (const char *setting)
{
return (rc_yesno (rc_conf_value (setting)));
} }
char **env_filter (void) char **env_filter (void)
@ -181,10 +185,10 @@ char **env_filter (void)
However, we do need a path, so use a default. */ However, we do need a path, so use a default. */
if (! got_path) { if (! got_path) {
env_len = strlen ("PATH=") + strlen (PATH_PREFIX) + 2; env_len = strlen ("PATH=") + strlen (PATH_PREFIX) + 2;
p = xmalloc (sizeof (char) * env_len); e = xmalloc (sizeof (char) * env_len);
snprintf (p, env_len, "PATH=%s", PATH_PREFIX); snprintf (e, env_len, "PATH=%s", PATH_PREFIX);
rc_strlist_add (&env, p); rc_strlist_add (&env, e);
free (p); free (e);
} }
rc_strlist_free (whitelist); rc_strlist_free (whitelist);
@ -242,6 +246,7 @@ char **env_config (void)
FILE *fp; FILE *fp;
char buffer[PATH_MAX]; char buffer[PATH_MAX];
char *runlevel = rc_runlevel_get (); char *runlevel = rc_runlevel_get ();
char *p;
/* One char less to drop the trailing / */ /* One char less to drop the trailing / */
i = strlen ("RC_LIBDIR=") + strlen (RC_LIBDIR) + 1; i = strlen ("RC_LIBDIR=") + strlen (RC_LIBDIR) + 1;
@ -323,6 +328,27 @@ char **env_config (void)
free (line); free (line);
} }
/* Be quiet or verbose as necessary */
if ((p = rc_conf_value ("rc_quiet"))) {
i = strlen ("EINFO_QUIET=") + strlen (p) + 1;
line = xmalloc (sizeof (char) * i);
snprintf (line, i, "EINFO_QUIET=%s", p);
rc_strlist_add (&env, line);
free (line);
}
if ((p = rc_conf_value ("rc_verbose"))) {
i = strlen ("EINFO_VERBOSE=") + strlen (p) + 1;
line = xmalloc (sizeof (char) * i);
snprintf (line, i, "EINFO_VERBOSE=%s", p);
rc_strlist_add (&env, line);
free (line);
}
errno = 0;
if ((! rc_conf_yesno ("rc_color") && errno == 0) ||
rc_conf_yesno ("rc_nocolor"))
rc_strlist_add (&env, "EINFO_COLOR=no");
free (runlevel); free (runlevel);
return (env); return (env);
} }

View File

@ -111,6 +111,7 @@ static inline bool exists (const char *pathname)
return (stat (pathname, &buf) == 0); return (stat (pathname, &buf) == 0);
} }
char *rc_conf_value (const char *var);
bool rc_conf_yesno (const char *var); bool rc_conf_yesno (const char *var);
char **env_filter (void); char **env_filter (void);
char **env_config (void); char **env_config (void);

View File

@ -82,7 +82,9 @@ static void print_service (char *service)
} else } else
snprintf (status, sizeof (status), " stopped "); snprintf (status, sizeof (status), " stopped ");
if (isatty (fileno (stdout)) && ! rc_yesno (getenv ("RC_NOCOLOR"))) errno = 0;
if ((rc_yesno (getenv ("EINFO_COLOR")) || errno == ENOENT) &&
isatty (fileno (stdout)))
printf ("\n"); printf ("\n");
ebracket (cols, color, status); ebracket (cols, color, status);
} }

View File

@ -185,7 +185,7 @@ int rc_update (int argc, char **argv)
} }
} }
verbose = rc_yesno (getenv ("RC_VERBOSE")); verbose = rc_yesno (getenv ("EINFO_VERBOSE"));
if ((action & DOSHOW && action != DOSHOW) || if ((action & DOSHOW && action != DOSHOW) ||
(action & DOADD && action != DOADD) || (action & DOADD && action != DOADD) ||

View File

@ -216,8 +216,8 @@ static int do_e (int argc, char **argv)
if (argc < 3) if (argc < 3)
eerrorx ("%s: not enough arguments", applet); eerrorx ("%s: not enough arguments", applet);
unsetenv ("RC_ELOG"); unsetenv ("EINFO_LOG");
setenv ("RC_ELOG", argv[1], 1); setenv ("EINFO_LOG", argv[1], 1);
argc -= 2; argc -= 2;
argv += 2; argv += 2;
@ -939,7 +939,7 @@ int main (int argc, char **argv)
eerrorx ("%s: root access required", applet); eerrorx ("%s: root access required", applet);
/* Enable logging */ /* Enable logging */
setenv ("RC_ELOG", "rc", 1); setenv ("EINFO_LOG", "rc", 1);
/* Export our PID */ /* Export our PID */
snprintf (pidstr, sizeof (pidstr), "%d", getpid ()); snprintf (pidstr, sizeof (pidstr), "%d", getpid ());

View File

@ -1098,8 +1098,8 @@ int runscript (int argc, char **argv)
if ((softlevel = xstrdup (getenv ("RC_SOFTLEVEL"))) == NULL) { if ((softlevel = xstrdup (getenv ("RC_SOFTLEVEL"))) == NULL) {
/* Ensure our environment is pure /* Ensure our environment is pure
Also, add our configuration to it */ Also, add our configuration to it */
tmplist = env_config ();
env = env_filter (); env = env_filter ();
tmplist = env_config ();
rc_strlist_join (&env, tmplist); rc_strlist_join (&env, tmplist);
rc_strlist_free (tmplist); rc_strlist_free (tmplist);
tmplist = NULL; tmplist = NULL;
@ -1135,7 +1135,7 @@ int runscript (int argc, char **argv)
softlevel = rc_runlevel_get (); softlevel = rc_runlevel_get ();
} }
setenv ("RC_ELOG", service, 1); setenv ("EINFO_LOG", service, 1);
setenv ("SVCNAME", applet, 1); setenv ("SVCNAME", applet, 1);
/* Set an env var so that we always know our pid regardless of any /* Set an env var so that we always know our pid regardless of any

View File

@ -708,8 +708,8 @@ int start_stop_daemon (int argc, char **argv)
case_RC_COMMON_GETOPT case_RC_COMMON_GETOPT
} }
quiet = rc_yesno (getenv ("RC_QUIET")); quiet = rc_yesno (getenv ("EINFO_QUIET"));
verbose = rc_yesno (getenv ("RC_VERBOSE")); verbose = rc_yesno (getenv ("EINFO_VERBOSE"));
/* Allow start-stop-daemon --signal HUP --exec /usr/sbin/dnsmasq /* Allow start-stop-daemon --signal HUP --exec /usr/sbin/dnsmasq
* instead of forcing --stop --oknodo as well */ * instead of forcing --stop --oknodo as well */