1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-31 05:47:30 +03:00

dissect: show all kinds of images in --discover

Given that systemd-dissect can nowadays operate on plain directories,
let's include directory images in the --discover output too.

Replace the filter with a filter for hidden images instead, as suddenly
the root fs image (which is a directory image ".host") otherwise shows up.
This commit is contained in:
Lennart Poettering 2024-11-12 12:48:39 +01:00
parent 36d2096b84
commit 41c2a5b0b9
2 changed files with 18 additions and 1 deletions

View File

@ -514,6 +514,15 @@
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
<varlistentry>
<term><option>--all</option></term>
<listitem><para>If combined with <option>--discover</option>, also shows images that start with a
dot, i.e. hidden images.</para>
<xi:include href="version-info.xml" xpointer="v258"/></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="image-policy-open" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />

View File

@ -96,6 +96,7 @@ static ImagePolicy *arg_image_policy = NULL;
static bool arg_mtree_hash = true;
static bool arg_via_service = false;
static RuntimeScope arg_runtime_scope = _RUNTIME_SCOPE_INVALID;
static bool arg_all = false;
STATIC_DESTRUCTOR_REGISTER(arg_image, freep);
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
@ -154,6 +155,7 @@ static int help(void) {
" --mtree-hash=BOOL Whether to include SHA256 hash in the mtree output\n"
" --user Discover user images\n"
" --system Discover system images\n"
" --all Show hidden images too\n"
"\n%3$sCommands:%4$s\n"
" -h --help Show this help\n"
" --version Show package version\n"
@ -279,6 +281,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_MAKE_ARCHIVE,
ARG_SYSTEM,
ARG_USER,
ARG_ALL,
};
static const struct option options[] = {
@ -314,6 +317,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "make-archive", no_argument, NULL, ARG_MAKE_ARCHIVE },
{ "system", no_argument, NULL, ARG_SYSTEM },
{ "user", no_argument, NULL, ARG_USER },
{ "all", no_argument, NULL, ARG_ALL },
{}
};
@ -554,6 +558,10 @@ static int parse_argv(int argc, char *argv[]) {
user_scope_requested = true;
break;
case ARG_ALL:
arg_all = true;
break;
case '?':
return -EINVAL;
@ -1889,7 +1897,7 @@ static int action_discover(void) {
HASHMAP_FOREACH(img, images) {
if (!IN_SET(img->type, IMAGE_RAW, IMAGE_BLOCK))
if (!arg_all && startswith(img->name, "."))
continue;
r = table_add_many(