mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-18 10:04:17 +03:00
status: Introduce tool to quickly check if we are booted as default
Generally in ostree based systems you would expect to boot into deployment 0, in rollback conditions triggered by greenboot-related rollbacks this might not be the case. This is a tool to detect this. Signed-off-by: Eric Curtin <ecurtin@redhat.com>
This commit is contained in:
parent
ac8638f3e4
commit
1397ee2b7a
@ -30,13 +30,21 @@
|
||||
|
||||
static gboolean opt_verify;
|
||||
static gboolean opt_skip_signatures;
|
||||
static gboolean opt_query_booted;
|
||||
|
||||
static GOptionEntry options[]
|
||||
= { { "verify", 'V', 0, G_OPTION_ARG_NONE, &opt_verify, "Print the commit verification status",
|
||||
NULL },
|
||||
{ "skip-signatures", 'S', 0, G_OPTION_ARG_NONE, &opt_skip_signatures,
|
||||
"Print the commit verification status", NULL },
|
||||
{ NULL } };
|
||||
static GOptionEntry options[] = {
|
||||
{ "verify", 'V', 0, G_OPTION_ARG_NONE, &opt_verify, "Print the commit verification status",
|
||||
NULL },
|
||||
{ "skip-signatures", 'S', 0, G_OPTION_ARG_NONE, &opt_skip_signatures,
|
||||
"Print the commit verification status", NULL },
|
||||
{ "query-booted", 'Q', 0, G_OPTION_ARG_NONE, &opt_query_booted,
|
||||
"Output the string \"default\" if the default deployment is the booted one, \"not-default\" if "
|
||||
"we are booted in a non-default deployment (e.g. the user interactively chose a different "
|
||||
"entry in the bootloader menu, or the bootloader rolled back automatically, etc.). If we are "
|
||||
"not in a booted OSTree system, an error is returned.",
|
||||
NULL },
|
||||
{ NULL }
|
||||
};
|
||||
static gboolean
|
||||
deployment_print_status (OstreeSysroot *sysroot, OstreeRepo *repo, OstreeDeployment *deployment,
|
||||
gboolean is_booted, gboolean is_pending, gboolean is_rollback,
|
||||
@ -200,7 +208,15 @@ ot_admin_builtin_status (int argc, char **argv, OstreeCommandInvocation *invocat
|
||||
if (booted_deployment)
|
||||
ostree_sysroot_query_deployments_for (sysroot, NULL, &pending_deployment, &rollback_deployment);
|
||||
|
||||
if (deployments->len == 0)
|
||||
if (opt_query_booted)
|
||||
{
|
||||
if (deployments->len == 0)
|
||||
return glnx_throw (error, "Not in a booted OSTree system");
|
||||
|
||||
const gboolean is_default_booted = deployments->pdata[0] == booted_deployment;
|
||||
g_print ("%s\n", is_default_booted ? "default" : "not-default");
|
||||
}
|
||||
else if (deployments->len == 0)
|
||||
{
|
||||
g_print ("No deployments.\n");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user