Cuddle up to LKML C style
This commit is contained in:
211
src/rc-update.c
211
src/rc-update.c
@@ -22,141 +22,130 @@ static char *applet = NULL;
|
||||
|
||||
static bool add (const char *runlevel, const char *service)
|
||||
{
|
||||
bool retval = true;
|
||||
bool retval = true;
|
||||
|
||||
if (! rc_runlevel_exists (runlevel))
|
||||
{
|
||||
ewarn ("runlevel `%s' does not exist", runlevel);
|
||||
return (false);
|
||||
}
|
||||
if (rc_service_in_runlevel (service, runlevel))
|
||||
{
|
||||
ewarn ("%s already installed in runlevel `%s'; skipping",
|
||||
service, runlevel);
|
||||
return (false);
|
||||
}
|
||||
if (! rc_runlevel_exists (runlevel)) {
|
||||
ewarn ("runlevel `%s' does not exist", runlevel);
|
||||
return (false);
|
||||
}
|
||||
if (rc_service_in_runlevel (service, runlevel)) {
|
||||
ewarn ("%s already installed in runlevel `%s'; skipping",
|
||||
service, runlevel);
|
||||
return (false);
|
||||
}
|
||||
|
||||
if (rc_service_add (runlevel, service))
|
||||
einfo ("%s added to runlevel %s", service, runlevel);
|
||||
else
|
||||
{
|
||||
eerror ("%s: failed to add service `%s' to runlevel `%s': %s",
|
||||
applet, service, runlevel, strerror (errno));
|
||||
retval = false;
|
||||
}
|
||||
if (rc_service_add (runlevel, service))
|
||||
einfo ("%s added to runlevel %s", service, runlevel);
|
||||
else {
|
||||
eerror ("%s: failed to add service `%s' to runlevel `%s': %s",
|
||||
applet, service, runlevel, strerror (errno));
|
||||
retval = false;
|
||||
}
|
||||
|
||||
return (retval);
|
||||
return (retval);
|
||||
}
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
char *service;
|
||||
char **runlevels = NULL;
|
||||
char *runlevel;
|
||||
int i;
|
||||
int j;
|
||||
char *service;
|
||||
char **runlevels = NULL;
|
||||
char *runlevel;
|
||||
|
||||
applet = argv[0];
|
||||
if (argc < 2 ||
|
||||
strcmp (argv[1], "show") == 0 ||
|
||||
strcmp (argv[1], "-s") == 0)
|
||||
{
|
||||
bool verbose = false;
|
||||
char **services = rc_services_in_runlevel (NULL);
|
||||
applet = argv[0];
|
||||
if (argc < 2 ||
|
||||
strcmp (argv[1], "show") == 0 ||
|
||||
strcmp (argv[1], "-s") == 0)
|
||||
{
|
||||
bool verbose = false;
|
||||
char **services = rc_services_in_runlevel (NULL);
|
||||
|
||||
for (i = 2; i < argc; i++)
|
||||
{
|
||||
if (strcmp (argv[i], "--verbose") == 0 ||
|
||||
strcmp (argv[i], "-v") == 0)
|
||||
verbose = true;
|
||||
else
|
||||
runlevels = rc_strlist_add (runlevels, argv[i]);
|
||||
}
|
||||
for (i = 2; i < argc; i++) {
|
||||
if (strcmp (argv[i], "--verbose") == 0 ||
|
||||
strcmp (argv[i], "-v") == 0)
|
||||
verbose = true;
|
||||
else
|
||||
runlevels = rc_strlist_add (runlevels, argv[i]);
|
||||
}
|
||||
|
||||
if (! runlevels)
|
||||
runlevels = rc_get_runlevels ();
|
||||
if (! runlevels)
|
||||
runlevels = rc_get_runlevels ();
|
||||
|
||||
STRLIST_FOREACH (services, service, i)
|
||||
{
|
||||
char **in = NULL;
|
||||
bool inone = false;
|
||||
STRLIST_FOREACH (services, service, i) {
|
||||
char **in = NULL;
|
||||
bool inone = false;
|
||||
|
||||
STRLIST_FOREACH (runlevels, runlevel, j)
|
||||
{
|
||||
if (rc_service_in_runlevel (service, runlevel))
|
||||
{
|
||||
in = rc_strlist_add (in, runlevel);
|
||||
inone = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
char buffer[PATH_MAX];
|
||||
memset (buffer, ' ', strlen (runlevel));
|
||||
buffer[strlen (runlevel)] = 0;
|
||||
in = rc_strlist_add (in, buffer);
|
||||
}
|
||||
}
|
||||
STRLIST_FOREACH (runlevels, runlevel, j) {
|
||||
if (rc_service_in_runlevel (service, runlevel)) {
|
||||
in = rc_strlist_add (in, runlevel);
|
||||
inone = true;
|
||||
} else {
|
||||
char buffer[PATH_MAX];
|
||||
memset (buffer, ' ', strlen (runlevel));
|
||||
buffer[strlen (runlevel)] = 0;
|
||||
in = rc_strlist_add (in, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
if (! inone && ! verbose)
|
||||
continue;
|
||||
if (! inone && ! verbose)
|
||||
continue;
|
||||
|
||||
printf (" %20s |", service);
|
||||
STRLIST_FOREACH (in, runlevel, j)
|
||||
printf (" %s", runlevel);
|
||||
printf ("\n");
|
||||
}
|
||||
printf (" %20s |", service);
|
||||
STRLIST_FOREACH (in, runlevel, j)
|
||||
printf (" %s", runlevel);
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (geteuid () != 0)
|
||||
eerrorx ("%s: must be root to add or delete services from runlevels",
|
||||
applet);
|
||||
if (geteuid () != 0)
|
||||
eerrorx ("%s: must be root to add or delete services from runlevels",
|
||||
applet);
|
||||
|
||||
if (! (service = argv[2]))
|
||||
eerrorx ("%s: no service specified", applet);
|
||||
if (! (service = argv[2]))
|
||||
eerrorx ("%s: no service specified", applet);
|
||||
|
||||
if (strcmp (argv[1], "add") == 0 ||
|
||||
strcmp (argv[1], "-a") == 0)
|
||||
{
|
||||
if (! service)
|
||||
eerrorx ("%s: no service specified", applet);
|
||||
if (! rc_service_exists (service))
|
||||
eerrorx ("%s: service `%s' does not exist", applet, service);
|
||||
if (strcmp (argv[1], "add") == 0 ||
|
||||
strcmp (argv[1], "-a") == 0)
|
||||
{
|
||||
if (! service)
|
||||
eerrorx ("%s: no service specified", applet);
|
||||
if (! rc_service_exists (service))
|
||||
eerrorx ("%s: service `%s' does not exist", applet, service);
|
||||
|
||||
if (argc < 4)
|
||||
add (rc_get_runlevel (), service);
|
||||
if (argc < 4)
|
||||
add (rc_get_runlevel (), service);
|
||||
|
||||
for (i = 3; i < argc; i++)
|
||||
add (argv[i], service);
|
||||
for (i = 3; i < argc; i++)
|
||||
add (argv[i], service);
|
||||
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (strcmp (argv[1], "delete") == 0 ||
|
||||
strcmp (argv[1], "del") == 0 ||
|
||||
strcmp (argv[1], "-d") == 0)
|
||||
{
|
||||
for (i = 3; i < argc; i++)
|
||||
runlevels = rc_strlist_add (runlevels, argv[i]);
|
||||
if (strcmp (argv[1], "delete") == 0 ||
|
||||
strcmp (argv[1], "del") == 0 ||
|
||||
strcmp (argv[1], "-d") == 0)
|
||||
{
|
||||
for (i = 3; i < argc; i++)
|
||||
runlevels = rc_strlist_add (runlevels, argv[i]);
|
||||
|
||||
if (! runlevels)
|
||||
runlevels = rc_strlist_add (runlevels, rc_get_runlevel ());
|
||||
if (! runlevels)
|
||||
runlevels = rc_strlist_add (runlevels, rc_get_runlevel ());
|
||||
|
||||
STRLIST_FOREACH (runlevels, runlevel, i)
|
||||
{
|
||||
if (rc_service_in_runlevel (service, runlevel))
|
||||
{
|
||||
if (rc_service_delete (runlevel, service))
|
||||
einfo ("%s removed from runlevel %s", service, runlevel);
|
||||
else
|
||||
eerror ("%s: failed to remove service `%s' from runlevel `%s': %s",
|
||||
applet, service, runlevel, strerror (errno));
|
||||
}
|
||||
}
|
||||
STRLIST_FOREACH (runlevels, runlevel, i) {
|
||||
if (rc_service_in_runlevel (service, runlevel)) {
|
||||
if (rc_service_delete (runlevel, service))
|
||||
einfo ("%s removed from runlevel %s", service, runlevel);
|
||||
else
|
||||
eerror ("%s: failed to remove service `%s' from runlevel `%s': %s",
|
||||
applet, service, runlevel, strerror (errno));
|
||||
}
|
||||
}
|
||||
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
eerrorx ("%s: unknown command `%s'", applet, argv[1]);
|
||||
eerrorx ("%s: unknown command `%s'", applet, argv[1]);
|
||||
}
|
||||
|
Reference in New Issue
Block a user