From a122502077357cab66fed19b32a9b3be4320c064 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 28 Jun 2020 11:59:00 +0200 Subject: [PATCH] firstboot: add option to turn off welcome text display --- man/systemd-firstboot.xml | 8 ++++++++ src/firstboot/firstboot.c | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/man/systemd-firstboot.xml b/man/systemd-firstboot.xml index d6bfd855c1..491ca6e9bf 100644 --- a/man/systemd-firstboot.xml +++ b/man/systemd-firstboot.xml @@ -259,6 +259,14 @@ option should not be used lightly. + + + + Takes a boolean argument. By default when prompting the user for configuration + options a brief welcome text is shown before the first question is asked. Pass false to this option + to turn off the welcome text. + + diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c index 6d22fbc081..5c9ee779ca 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c @@ -62,6 +62,7 @@ static bool arg_copy_root_password = false; static bool arg_force = false; static bool arg_delete_root_password = false; static bool arg_root_password_is_hashed = false; +static bool arg_welcome = true; STATIC_DESTRUCTOR_REGISTER(arg_root, freep); STATIC_DESTRUCTOR_REGISTER(arg_image, freep); @@ -93,6 +94,9 @@ static void print_welcome(void) { const char *pn; int r; + if (!arg_welcome) + return; + if (done) return; @@ -940,6 +944,7 @@ static int help(void) { " --setup-machine-id Generate a new random machine ID\n" " --force Overwrite existing files\n" " --delete-root-password Delete root password\n" + " --welcome=no Disable the welcome text\n" "\nSee the %s for details.\n" , program_invocation_short_name , link @@ -978,6 +983,7 @@ static int parse_argv(int argc, char *argv[]) { ARG_SETUP_MACHINE_ID, ARG_FORCE, ARG_DELETE_ROOT_PASSWORD, + ARG_WELCOME, }; static const struct option options[] = { @@ -1009,6 +1015,7 @@ static int parse_argv(int argc, char *argv[]) { { "setup-machine-id", no_argument, NULL, ARG_SETUP_MACHINE_ID }, { "force", no_argument, NULL, ARG_FORCE }, { "delete-root-password", no_argument, NULL, ARG_DELETE_ROOT_PASSWORD }, + { "welcome", required_argument, NULL, ARG_WELCOME }, {} }; @@ -1186,6 +1193,14 @@ static int parse_argv(int argc, char *argv[]) { arg_delete_root_password = true; break; + case ARG_WELCOME: + r = parse_boolean(optarg); + if (r < 0) + return log_error_errno(r, "Failed to parse --welcome= argument: %s", optarg); + + arg_welcome = r; + break; + case '?': return -EINVAL;