From 27f6a4da21973e3cfa65551c4b1909fa7c038386 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Fri, 25 Apr 2025 22:01:40 +0200 Subject: [PATCH] vlib: add 'use-current-dir' knob to unix {} conf ...to tell vpp to stay in current dir. Type: improvement Change-Id: I50813908fbe8bfe81f86c641a2bacc52bfe3122d Signed-off-by: Damjan Marion --- src/vlib/unix/main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index 5841451735e..cd1f1e1c99a 100644 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -386,6 +386,7 @@ unix_config (vlib_main_t * vm, unformat_input_t * input) clib_error_t *error = 0; gid_t gid; int pidfd = -1; + int use_current_dir = 0; /* Defaults */ um->cli_pager_buffer_limit = UNIX_CLI_DEFAULT_PAGER_LIMIT; @@ -409,6 +410,8 @@ unix_config (vlib_main_t * vm, unformat_input_t * input) else if (unformat (input, "cli-listen %s", &um->cli_listen_socket.config)) ; + else if (unformat (input, "use-current-dir")) + use_current_dir = 1; else if (unformat (input, "runtime-dir %s", &um->runtime_dir)) ; else if (unformat (input, "cli-line-mode")) @@ -498,6 +501,13 @@ unix_config (vlib_main_t * vm, unformat_input_t * input) format_unformat_error, input); } + if (use_current_dir) + { + char cwd[PATH_MAX]; + if (getcwd (cwd, PATH_MAX)) + um->runtime_dir = format (um->runtime_dir, "%s", cwd); + } + if (um->runtime_dir == 0) { uid_t uid = geteuid (); -- 2.16.6