Move _shell_var shell function to shell_var C applet

This commit is contained in:
Roy Marples
2008-01-02 15:38:37 +00:00
parent e5933843e8
commit fadee8e656
6 changed files with 36 additions and 40 deletions

View File

@@ -69,7 +69,8 @@ RC_BINLINKS = einfon einfo ewarnn ewarn eerrorn eerror ebegin eend ewend \
service_inactive service_wasinactive \
service_coldplugged service_started_daemon \
checkpath fstabinfo mountinfo rc-depend \
service_get_value service_set_value get_options save_options
service_get_value service_set_value get_options save_options \
shell_var
RC_SBINLINKS = mark_service_starting mark_service_started \
mark_service_stopping mark_service_stopped \
mark_service_inactive mark_service_wasinactive \

View File

@@ -457,6 +457,28 @@ static int do_value (int argc, char **argv)
return (ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
static int do_shell_var (int argc, char **argv)
{
int i;
for (i = 0; i < argc; i++) {
char *p = argv[i];
if (i != 0)
putchar (' ');
while (*p) {
char c = *p++;
if (! isalnum (c))
c = '_';
putchar (c);
}
}
putchar ('\n');
return (EXIT_SUCCESS);
}
#ifdef __linux__
static char *proc_getent (const char *ent)
{
@@ -903,6 +925,9 @@ int main (int argc, char **argv)
else if (strcmp (applet, "is_runlevel_stop") == 0)
exit (rc_runlevel_stopping () ? 0 : 1);
if (strcmp (applet, "shell_var") == 0)
exit (do_shell_var (argc, argv));
if (strcmp (applet, "rc-abort") == 0) {
char *p = getenv ("RC_PID");
pid_t pid = 0;