api,manager: new 'Version' property

This string shows the runtime version of the ModemManager daemon.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/94
This commit is contained in:
Aleksander Morgado
2018-12-04 17:26:59 +00:00
committed by Dan Williams
parent d0bb8d1d50
commit c7af14cc80
6 changed files with 54 additions and 5 deletions
+16 -2
View File
@@ -51,6 +51,7 @@ typedef struct {
static Context *ctx;
/* Options */
static gboolean get_daemon_version_flag;
static gboolean list_modems_flag;
static gboolean monitor_modems_flag;
static gboolean scan_modems_flag;
@@ -62,6 +63,10 @@ static gboolean report_kernel_event_auto_scan;
#endif
static GOptionEntry entries[] = {
{ "get-daemon-version", 'B', 0, G_OPTION_ARG_NONE, &get_daemon_version_flag,
"Get ModemManager daemon version",
NULL
},
{ "set-logging", 'G', 0, G_OPTION_ARG_STRING, &set_logging_str,
"Set logging level in the ModemManager daemon",
"[ERR,WARN,INFO,DEBUG]",
@@ -116,7 +121,8 @@ mmcli_manager_options_enabled (void)
if (checked)
return !!n_actions;
n_actions = (list_modems_flag +
n_actions = (get_daemon_version_flag +
list_modems_flag +
monitor_modems_flag +
scan_modems_flag +
!!set_logging_str +
@@ -131,7 +137,9 @@ mmcli_manager_options_enabled (void)
exit (EXIT_FAILURE);
}
if (monitor_modems_flag) {
if (get_daemon_version_flag)
mmcli_force_sync_operation ();
else if (monitor_modems_flag) {
if (mmcli_output_get () != MMC_OUTPUT_TYPE_HUMAN) {
g_printerr ("error: modem monitoring not available in keyvalue output\n");
exit (EXIT_FAILURE);
@@ -495,6 +503,12 @@ mmcli_manager_run_synchronous (GDBusConnection *connection)
ctx = g_new0 (Context, 1);
ctx->manager = mmcli_get_manager_sync (connection);
/* Get daemon version? */
if (get_daemon_version_flag) {
g_print ("ModemManager daemon %s running\n", mm_manager_get_version (ctx->manager));
return;
}
/* Setup operation timeout */
mmcli_force_operation_timeout (mm_manager_peek_proxy (ctx->manager));