Move _shell_var shell function to shell_var C applet
This commit is contained in:
@@ -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 \
|
||||
|
||||
25
src/rc.c
25
src/rc.c
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user