dissect: minor additions to the systemd-dissect tool (#35829)
This commit is contained in:
@@ -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" />
|
||||
|
||||
+23
-2
@@ -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,18 +1897,21 @@ 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(
|
||||
t,
|
||||
TABLE_STRING, img->name,
|
||||
TABLE_SET_COLOR, startswith(img->name, ".") ? ANSI_GREY : NULL,
|
||||
TABLE_STRING, image_type_to_string(img->type),
|
||||
TABLE_STRING, image_class_to_string(img->class),
|
||||
TABLE_BOOLEAN, img->read_only,
|
||||
TABLE_SET_COLOR, !img->read_only ? ANSI_HIGHLIGHT_GREEN : ANSI_HIGHLIGHT_RED,
|
||||
TABLE_PATH, img->path,
|
||||
TABLE_TIMESTAMP, img->mtime != 0 ? img->mtime : img->crtime,
|
||||
TABLE_SIZE, img->usage);
|
||||
TABLE_SIZE, img->usage,
|
||||
TABLE_SET_COLOR, img->usage <= 0 ? ANSI_HIGHLIGHT_RED : NULL);
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
@@ -2055,6 +2066,16 @@ static int run(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
if (arg_root) {
|
||||
r = path_pick_update_warn(
|
||||
&arg_root,
|
||||
&pick_filter_image_dir,
|
||||
PICK_ARCHITECTURE|PICK_TRIES,
|
||||
/* ret_result= */ NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
switch (arg_action) {
|
||||
case ACTION_UMOUNT:
|
||||
return action_umount(arg_path);
|
||||
|
||||
Reference in New Issue
Block a user