[gnome-software: 35/38] gs-cmd: Add --interactive argument
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software: 35/38] gs-cmd: Add --interactive argument
- Date: Thu, 3 Mar 2022 16:39:53 +0000 (UTC)
commit 398b84942df49f9b1f167065e2008ac8d1428037
Author: Philip Withnall <pwithnall endlessos org>
Date: Thu Mar 3 12:31:40 2022 +0000
gs-cmd: Add --interactive argument
This allows any necessary polkit authentication to be interactive, if
the caller wants.
Signed-off-by: Philip Withnall <pwithnall endlessos org>
lib/gs-cmd.c | 39 ++++++++++++++++++++++++++++++++++-----
1 file changed, 34 insertions(+), 5 deletions(-)
---
diff --git a/lib/gs-cmd.c b/lib/gs-cmd.c
index 5fdb2fe82..e5e96ba2e 100644
--- a/lib/gs-cmd.c
+++ b/lib/gs-cmd.c
@@ -21,6 +21,7 @@ typedef struct {
GsPluginLoader *plugin_loader;
guint64 refine_flags;
guint max_results;
+ gboolean interactive;
} GsCmdSelf;
static void
@@ -214,6 +215,7 @@ gs_cmd_action_exec (GsCmdSelf *self, GsPluginAction action, const gchar *name, G
"search", name,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job, NULL, error);
if (list == NULL)
@@ -265,7 +267,10 @@ gs_cmd_action_exec (GsCmdSelf *self, GsPluginAction action, const gchar *name, G
}
/* install */
- plugin_job2 = gs_plugin_job_newv (action, "app", app, NULL);
+ plugin_job2 = gs_plugin_job_newv (action,
+ "app", app,
+ "interactive", self->interactive,
+ NULL);
return gs_plugin_loader_job_action (self->plugin_loader, plugin_job2,
NULL, error);
}
@@ -322,6 +327,8 @@ main (int argc, char **argv)
"Only load specific plugins", NULL },
{ "verbose", '\0', 0, G_OPTION_ARG_NONE, &verbose,
"Show verbose debugging information", NULL },
+ { "interactive", 'i', 0, G_OPTION_ARG_NONE, &self->interactive,
+ "Allow interactive authentication", NULL },
{ NULL}
};
@@ -377,8 +384,12 @@ main (int argc, char **argv)
* spin up the plugins enough as to prime caches */
if (g_getenv ("GS_CMD_NO_INITIAL_REFRESH") == NULL) {
g_autoptr(GsPluginJob) plugin_job = NULL;
- plugin_job = gs_plugin_job_refresh_metadata_new (G_MAXUINT64,
- GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE);
+ GsPluginRefreshMetadataFlags refresh_metadata_flags = GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE;
+
+ if (self->interactive)
+ refresh_metadata_flags |= GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE;
+
+ plugin_job = gs_plugin_job_refresh_metadata_new (G_MAXUINT64, refresh_metadata_flags);
ret = gs_plugin_loader_job_action (self->plugin_loader, plugin_job,
NULL, &error);
if (!ret) {
@@ -410,6 +421,7 @@ main (int argc, char **argv)
"search", argv[2],
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job, NULL, &error);
if (list == NULL) {
@@ -428,6 +440,7 @@ main (int argc, char **argv)
"app", app,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job, NULL, &error);
if (list == NULL) {
@@ -452,6 +465,7 @@ main (int argc, char **argv)
gs_app_set_kind (app, AS_COMPONENT_KIND_OPERATING_SYSTEM);
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_UPGRADE_DOWNLOAD,
"app", app,
+ "interactive", self->interactive,
NULL);
ret = gs_plugin_loader_job_action (self->plugin_loader, plugin_job,
NULL, &error);
@@ -475,6 +489,7 @@ main (int argc, char **argv)
g_autoptr(GsPluginJob) plugin_job = NULL;
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_LAUNCH,
"app", app,
+ "interactive", self->interactive,
NULL);
ret = gs_plugin_loader_job_action (self->plugin_loader, plugin_job,
NULL, &error);
@@ -488,6 +503,7 @@ main (int argc, char **argv)
"file", file,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
app = gs_plugin_loader_job_process_app (self->plugin_loader, plugin_job, NULL, &error);
if (app == NULL) {
@@ -502,6 +518,7 @@ main (int argc, char **argv)
"search", argv[2],
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
app = gs_plugin_loader_job_process_app (self->plugin_loader, plugin_job,
NULL, &error);
@@ -519,6 +536,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_UPDATES,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job,
NULL, &error);
@@ -535,6 +553,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_DISTRO_UPDATES,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job,
NULL, &error);
@@ -548,6 +567,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_SOURCES,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader,
plugin_job,
@@ -563,6 +583,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_POPULAR,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job,
NULL, &error);
@@ -579,6 +600,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_FEATURED,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job,
NULL, &error);
@@ -598,6 +620,7 @@ main (int argc, char **argv)
"age", cache_age_secs,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job,
NULL, &error);
@@ -614,6 +637,7 @@ main (int argc, char **argv)
plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_GET_CATEGORIES,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
categories = gs_plugin_loader_job_get_categories (self->plugin_loader,
plugin_job,
@@ -652,6 +676,7 @@ main (int argc, char **argv)
"category", category,
"refine-flags", self->refine_flags,
"max-results", self->max_results,
+ "interactive", self->interactive,
NULL);
list = gs_plugin_loader_job_process (self->plugin_loader, plugin_job, NULL, &error);
if (list == NULL) {
@@ -661,8 +686,12 @@ main (int argc, char **argv)
}
} else if (argc >= 2 && g_strcmp0 (argv[1], "refresh") == 0) {
g_autoptr(GsPluginJob) plugin_job = NULL;
- plugin_job = gs_plugin_job_refresh_metadata_new (cache_age_secs,
- GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE);
+ GsPluginRefreshMetadataFlags refresh_metadata_flags = GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE;
+
+ if (self->interactive)
+ refresh_metadata_flags |= GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE;
+
+ plugin_job = gs_plugin_job_refresh_metadata_new (cache_age_secs, refresh_metadata_flags);
ret = gs_plugin_loader_job_action (self->plugin_loader, plugin_job,
NULL, &error);
} else if (argc >= 1 && g_strcmp0 (argv[1], "user-hash") == 0) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]