mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
core: fixate show_status earlier, so that we actually print the welcome message
Previously, we'd fixed show_state only after printing the welcome message which had the effect that the welcome message was almost always suppressed.
This commit is contained in:
parent
3d0ce78b25
commit
b6e2f3293d
@ -88,7 +88,7 @@ static bool arg_dump_core = true;
|
||||
static bool arg_crash_shell = false;
|
||||
static int arg_crash_chvt = -1;
|
||||
static bool arg_confirm_spawn = false;
|
||||
static ShowStatus arg_show_status = SHOW_STATUS_UNSET;
|
||||
static ShowStatus arg_show_status = _SHOW_STATUS_UNSET;
|
||||
static bool arg_switched_root = false;
|
||||
static char ***arg_join_controllers = NULL;
|
||||
static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
|
||||
@ -408,7 +408,7 @@ static int parse_proc_cmdline_word(const char *word) {
|
||||
}
|
||||
|
||||
} else if (streq(word, "quiet")) {
|
||||
if (arg_show_status == SHOW_STATUS_UNSET)
|
||||
if (arg_show_status == _SHOW_STATUS_UNSET)
|
||||
arg_show_status = SHOW_STATUS_AUTO;
|
||||
} else if (streq(word, "debug")) {
|
||||
/* Log to kmsg, the journal socket will fill up before the
|
||||
@ -1209,6 +1209,24 @@ finish:
|
||||
#endif
|
||||
}
|
||||
|
||||
static int status_welcome(void) {
|
||||
_cleanup_free_ char *pretty_name = NULL, *ansi_color = NULL;
|
||||
int r;
|
||||
|
||||
r = parse_env_file("/etc/os-release", NEWLINE,
|
||||
"PRETTY_NAME", &pretty_name,
|
||||
"ANSI_COLOR", &ansi_color,
|
||||
NULL);
|
||||
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/os-release: %s", strerror(-r));
|
||||
|
||||
return status_printf(NULL, false, false,
|
||||
"\nWelcome to \x1B[%sm%s\x1B[0m!\n",
|
||||
isempty(ansi_color) ? "1" : ansi_color,
|
||||
isempty(pretty_name) ? "Linux" : pretty_name);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
Manager *m = NULL;
|
||||
int r, retval = EXIT_FAILURE;
|
||||
@ -1470,6 +1488,9 @@ int main(int argc, char *argv[]) {
|
||||
/* Open the logging devices, if possible and necessary */
|
||||
log_open();
|
||||
|
||||
if (arg_show_status == _SHOW_STATUS_UNSET)
|
||||
arg_show_status = SHOW_STATUS_YES;
|
||||
|
||||
/* Make sure we leave a core dump without panicing the
|
||||
* kernel. */
|
||||
if (getpid() == 1) {
|
||||
@ -1576,12 +1597,7 @@ int main(int argc, char *argv[]) {
|
||||
m->security_finish_timestamp = security_finish_timestamp;
|
||||
|
||||
manager_set_default_rlimits(m, arg_default_rlimit);
|
||||
|
||||
if (arg_default_environment)
|
||||
manager_environment_add(m, NULL, arg_default_environment);
|
||||
|
||||
if (arg_show_status == SHOW_STATUS_UNSET)
|
||||
arg_show_status = SHOW_STATUS_YES;
|
||||
manager_environment_add(m, NULL, arg_default_environment);
|
||||
manager_set_show_status(m, arg_show_status);
|
||||
|
||||
/* Remember whether we should queue the default job */
|
||||
|
@ -91,7 +91,7 @@ bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status);
|
||||
/* Manager status */
|
||||
|
||||
typedef enum ShowStatus {
|
||||
SHOW_STATUS_UNSET = -2,
|
||||
_SHOW_STATUS_UNSET = -2,
|
||||
SHOW_STATUS_AUTO = -1,
|
||||
SHOW_STATUS_NO = 0,
|
||||
SHOW_STATUS_YES = 1,
|
||||
|
@ -2928,24 +2928,6 @@ int status_printf(const char *status, bool ellipse, bool ephemeral, const char *
|
||||
return r;
|
||||
}
|
||||
|
||||
int status_welcome(void) {
|
||||
_cleanup_free_ char *pretty_name = NULL, *ansi_color = NULL;
|
||||
int r;
|
||||
|
||||
r = parse_env_file("/etc/os-release", NEWLINE,
|
||||
"PRETTY_NAME", &pretty_name,
|
||||
"ANSI_COLOR", &ansi_color,
|
||||
NULL);
|
||||
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/os-release: %s", strerror(-r));
|
||||
|
||||
return status_printf(NULL, false, false,
|
||||
"\nWelcome to \x1B[%sm%s\x1B[0m!\n",
|
||||
isempty(ansi_color) ? "1" : ansi_color,
|
||||
isempty(pretty_name) ? "Linux" : pretty_name);
|
||||
}
|
||||
|
||||
char *replace_env(const char *format, char **env) {
|
||||
enum {
|
||||
WORD,
|
||||
|
@ -409,7 +409,6 @@ cpu_set_t* cpu_set_malloc(unsigned *ncpus);
|
||||
|
||||
int status_vprintf(const char *status, bool ellipse, bool ephemeral, const char *format, va_list ap) _printf_(4,0);
|
||||
int status_printf(const char *status, bool ellipse, bool ephemeral, const char *format, ...) _printf_(4,5);
|
||||
int status_welcome(void);
|
||||
|
||||
int fd_columns(int fd);
|
||||
unsigned columns(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user