From 1807baa931e4afa6d0c61fb9582f6529b25189eb Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 19 Jan 2024 23:23:48 +0100 Subject: [PATCH] nspawn,vmspawn: let's add some terminal magic to the welcome text Let's grey the text out, and prefix it with a vertical grey bar, to make clear this is output from the host, not the payload, and make it clearly distinguishable from what follows. Let's also make the image name clickable (with new enough shared-mime-info this should allow you to look into the image with gnome-disk-utility or a similar tool. --- src/nspawn/nspawn.c | 13 ++++++++++--- src/vmspawn/vmspawn.c | 13 +++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 445d85da6f0..c48b51323b7 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -5943,9 +5943,16 @@ static int run(int argc, char *argv[]) { if (arg_console_mode == CONSOLE_PIPE) /* if we pass STDERR on to the container, don't add our own logs into it too */ arg_quiet = true; - if (!arg_quiet) - log_info("Spawning container %s on %s.\nPress Ctrl-] three times within 1s to kill container.", - arg_machine, arg_image ?: arg_directory); + if (!arg_quiet) { + const char *t = arg_image ?: arg_directory; + _cleanup_free_ char *u = NULL; + (void) terminal_urlify_path(t, t, &u); + + log_info("%s %sSpawning container %s on %s.%s\n" + "%s %sPress %sCtrl-]%s three times within 1s to kill container.%s", + special_glyph(SPECIAL_GLYPH_LIGHT_SHADE), ansi_grey(), arg_machine, u ?: t, ansi_normal(), + special_glyph(SPECIAL_GLYPH_LIGHT_SHADE), ansi_grey(), ansi_highlight(), ansi_grey(), ansi_normal()); + } assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, SIGRTMIN+18, -1) >= 0); diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c index d93b6b29c92..a08bc4c6794 100644 --- a/src/vmspawn/vmspawn.c +++ b/src/vmspawn/vmspawn.c @@ -811,10 +811,15 @@ static int run(int argc, char *argv[]) { if (r < 0) return r; - if (!arg_quiet) - log_info("Spawning VM %s on %s.\n" - "Press Ctrl-a x to kill VM.", - arg_machine, arg_image); + if (!arg_quiet) { + _cleanup_free_ char *u = NULL; + (void) terminal_urlify_path(arg_image, arg_image, &u); + + log_info("%s %sSpawning VM %s on %s.%s\n" + "%s %sPress %sCtrl-a x%s to kill VM.%s", + special_glyph(SPECIAL_GLYPH_LIGHT_SHADE), ansi_grey(), arg_machine, u ?: arg_image, ansi_normal(), + special_glyph(SPECIAL_GLYPH_LIGHT_SHADE), ansi_grey(), ansi_highlight(), ansi_grey(), ansi_normal()); + } assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGCHLD, -1) >= 0); -- 2.47.3