conf-files: add flag so that we don't always prefix returned paths with the root dir path used
This is useful in tools such as system-repart where we show the definition file paths a lot in our output, but if prefixed with the root path we'd show a temporary mount dir when operating on a image file. Hence, let's drop the prefix here, and show only the path within the image.
This commit is contained in:
@@ -539,7 +539,7 @@ static int copy_and_sort_files_from_hashmap(
|
||||
|
||||
if (FLAGS_SET(flags, CONF_FILES_BASENAME))
|
||||
add = c->filename;
|
||||
else if (root) {
|
||||
else if (root && !FLAGS_SET(flags, CONF_FILES_DONT_PREFIX_ROOT)) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
r = chaseat_prefix_root(c->result, root, &p);
|
||||
|
||||
@@ -15,6 +15,7 @@ typedef enum ConfFilesFlags {
|
||||
CONF_FILES_FILTER_MASKED = CONF_FILES_FILTER_MASKED_BY_SYMLINK | CONF_FILES_FILTER_MASKED_BY_EMPTY,
|
||||
CONF_FILES_TRUNCATE_SUFFIX = 1 << 6, /* truncate specified suffix from return filename or path */
|
||||
CONF_FILES_WARN = 1 << 7, /* warn on some errors */
|
||||
CONF_FILES_DONT_PREFIX_ROOT = 1 << 8, /* don't prefix the specified root path to the resulting paths */
|
||||
} ConfFilesFlags;
|
||||
|
||||
typedef struct ConfFile {
|
||||
|
||||
+1
-1
@@ -3397,7 +3397,7 @@ static int context_read_definitions(Context *context) {
|
||||
&files,
|
||||
".conf",
|
||||
context->definitions ? NULL : arg_root,
|
||||
CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED|CONF_FILES_WARN,
|
||||
CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED|CONF_FILES_WARN|CONF_FILES_DONT_PREFIX_ROOT,
|
||||
dirs);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to enumerate *.conf files: %m");
|
||||
|
||||
Reference in New Issue
Block a user