pretty print, and add sme more client methods

This commit is contained in:
Richard Hughes 2007-08-03 20:33:47 +01:00
parent 622f662b0a
commit 3332b8ccc9
2 changed files with 145 additions and 4 deletions

View File

@ -37,7 +37,24 @@
static void
pk_console_package_cb (PkTaskClient *tclient, const gchar *package, const gchar *summary, gpointer data)
{
g_print ("%s\t%s\n", package, summary);
gchar *padding;
gint size;
size = (25 - strlen(package));
if (size < 0) {
size = 0;
}
padding = g_strnfill (size, ' ');
g_print ("%s%s %s\n", package, padding, summary);
g_free (padding);
}
/**
* pk_console_percentage_changed_cb:
**/
static void
pk_console_percentage_changed_cb (PkTaskClient *tclient, guint percentage, gpointer data)
{
g_print ("%i%%\n", percentage);
}
/**
@ -95,14 +112,16 @@ main (int argc, char *argv[])
pk_debug ("value = %s", value);
pk_debug ("async = %i", async);
if (mode == NULL || value == NULL) {
pk_debug ("invalid command line parameters");
if (mode == NULL) {
pk_debug ("invalid mode");
return 1;
}
tclient = pk_task_client_new ();
g_signal_connect (tclient, "package",
G_CALLBACK (pk_console_package_cb), NULL);
g_signal_connect (tclient, "percentage-changed",
G_CALLBACK (pk_console_percentage_changed_cb), NULL);
pk_task_client_set_sync (tclient, !async);
if (strcmp (mode, "search") == 0) {
@ -111,6 +130,10 @@ main (int argc, char *argv[])
pk_task_client_install_package (tclient, value);
} else if (strcmp (mode, "remove") == 0) {
pk_task_client_remove_package_with_deps (tclient, value);
} else if (strcmp (mode, "update") == 0) {
pk_task_client_update_system (tclient);
} else if (strcmp (mode, "checkupdate") == 0) {
pk_task_client_get_updates (tclient);
} else {
pk_debug ("not yet supported");
}

View File

@ -93,6 +93,9 @@ pk_task_client_wait_if_sync (PkTaskClient *tclient)
gboolean
pk_task_client_get_updates (PkTaskClient *tclient)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -103,6 +106,22 @@ pk_task_client_get_updates (PkTaskClient *tclient)
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "GetUpdates", &error,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("GetUpdates failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -112,6 +131,9 @@ pk_task_client_get_updates (PkTaskClient *tclient)
gboolean
pk_task_client_update_system (PkTaskClient *tclient)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -122,6 +144,22 @@ pk_task_client_update_system (PkTaskClient *tclient)
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "UpdateSystem", &error,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("UpdateSystem failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -170,6 +208,9 @@ pk_task_client_find_packages (PkTaskClient *tclient, const gchar *search)
gboolean
pk_task_client_get_deps (PkTaskClient *tclient, const gchar *package)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -180,6 +221,23 @@ pk_task_client_get_deps (PkTaskClient *tclient, const gchar *package)
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "GetDeps", &error,
G_TYPE_STRING, package,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("GetDeps failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -189,6 +247,9 @@ pk_task_client_get_deps (PkTaskClient *tclient, const gchar *package)
gboolean
pk_task_client_remove_package (PkTaskClient *tclient, const gchar *package)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -199,6 +260,23 @@ pk_task_client_remove_package (PkTaskClient *tclient, const gchar *package)
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "RemovePackage", &error,
G_TYPE_STRING, package,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("RemovePackage failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -208,6 +286,9 @@ pk_task_client_remove_package (PkTaskClient *tclient, const gchar *package)
gboolean
pk_task_client_remove_package_with_deps (PkTaskClient *tclient, const gchar *package)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -218,6 +299,23 @@ pk_task_client_remove_package_with_deps (PkTaskClient *tclient, const gchar *pac
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "RemovePackageWithDeps", &error,
G_TYPE_STRING, package,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("RemovePackageWithDeps failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -227,6 +325,9 @@ pk_task_client_remove_package_with_deps (PkTaskClient *tclient, const gchar *pac
gboolean
pk_task_client_install_package (PkTaskClient *tclient, const gchar *package)
{
gboolean ret;
GError *error;
g_return_val_if_fail (tclient != NULL, FALSE);
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
@ -237,6 +338,23 @@ pk_task_client_install_package (PkTaskClient *tclient, const gchar *package)
}
tclient->priv->assigned = TRUE;
error = NULL;
ret = dbus_g_proxy_call (tclient->priv->proxy, "InstallPackage", &error,
G_TYPE_STRING, package,
G_TYPE_INVALID,
G_TYPE_UINT, &tclient->priv->job,
G_TYPE_INVALID);
if (error) {
pk_debug ("ERROR: %s", error->message);
g_error_free (error);
}
if (ret == FALSE) {
/* abort as the DBUS method failed */
pk_warning ("InstallPackage failed!");
return FALSE;
}
pk_task_client_wait_if_sync (tclient);
return TRUE;
}
@ -409,7 +527,7 @@ pk_task_client_class_init (PkTaskClientClass *klass)
0, NULL, NULL, g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT);
signals [PK_TASK_CLIENT_PERCENTAGE_CHANGED] =
g_signal_new ("percentage-complete-changed",
g_signal_new ("percentage-changed",
G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
0, NULL, NULL, g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT);