diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 3 | ||||
-rw-r--r-- | src/util.c | 47 | ||||
-rw-r--r-- | src/util.h | 2 |
3 files changed, 51 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index 99bea75914..df0da0be4f 100644 --- a/src/main.c +++ b/src/main.c @@ -764,7 +764,8 @@ int main(int argc, char *argv[]) { log_debug(PACKAGE_STRING " running in %s mode.", manager_running_as_to_string(arg_running_as)); - if (arg_running_as == MANAGER_SYSTEM) { + if (arg_running_as == MANAGER_SYSTEM && !serialization) { + status_welcome(); modprobe_setup(arg_nomodules); kmod_setup(); hostname_setup(); diff --git a/src/util.c b/src/util.c index 4795dbcc6a..774f061efc 100644 --- a/src/util.c +++ b/src/util.c @@ -2651,6 +2651,53 @@ finish: close_nointr_nofail(fd); } +void status_printf(const char *format, ...) { + va_list ap; + + assert(format); + + va_start(ap, format); + status_vprintf(format, ap); + va_end(ap); +} + +void status_welcome(void) { + +#if defined(TARGET_FEDORA) + char *r; + + if (read_one_line_file("/etc/system-release", &r) < 0) + return; + + truncate_nl(r); + + /* This tries to mimic the color magic the old Red Hat sysinit + * script did. */ + + if (startswith(r, "Red Hat")) + status_printf("\tWelcome to \x1B[0;31m%s\x1B[0m!\n", r); /* Red for RHEL */ + else if (startswith(r, "Fedora")) + status_printf("\tWelcome to \x1B[0;34m%s\x1B[0m!\n", r); /* Blue for Fedora */ + else + status_printf("\tWelcome to %s!\n", r); + + free(r); + +#elif defined(TARGET_SUSE) + char *r; + + if (read_one_line_file("/etc/SuSE-release", &r) < 0) + return; + + truncate_nl(r); + + status_printf("\tWelcome to \x1B[0;32m%s\x1B[0m!\n", r); /* Green for SUSE */ + free(r); +#else +#warning "You probably should add a welcome text logic here." +#endif +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime", diff --git a/src/util.h b/src/util.h index 0465915f40..65a5e66ad1 100644 --- a/src/util.h +++ b/src/util.h @@ -292,6 +292,8 @@ int rm_rf(const char *path, bool only_dirs, bool delete_root); cpu_set_t* cpu_set_malloc(unsigned *ncpus); void status_vprintf(const char *format, va_list ap); +void status_printf(const char *format, ...); +void status_welcome(void); const char *ioprio_class_to_string(int i); int ioprio_class_from_string(const char *s); |