summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c3
-rw-r--r--src/util.c47
-rw-r--r--src/util.h2
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);