diff --git a/man/ostree-admin-status.xml b/man/ostree-admin-status.xml
index dde099b00d..cc90312c91 100644
--- a/man/ostree-admin-status.xml
+++ b/man/ostree-admin-status.xml
@@ -61,6 +61,65 @@ License along with this library. If not, see .
+
+ Options
+
+
+
+ ="PATH"
+
+
+ Create a new OSTree sysroot at PATH
+
+
+
+
+
+
+
+ Print the commit verification status
+
+
+
+
+
+
+
+ Skip signatures in output
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Print debug information during command processing
+
+
+
+
+ --version
+
+
+ Print version information and exit
+
+
+
+
+
Example
$ ostree admin status
diff --git a/src/ostree/ot-admin-builtin-status.c b/src/ostree/ot-admin-builtin-status.c
index bf94843f26..e867cb8667 100644
--- a/src/ostree/ot-admin-builtin-status.c
+++ b/src/ostree/ot-admin-builtin-status.c
@@ -30,13 +30,21 @@
static gboolean opt_verify;
static gboolean opt_skip_signatures;
-
-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 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, "Skip signatures in output",
+ 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");
}