Exemple #1
0
static gboolean
as_app_builder_search_dbus_file (AsApp *app,
				 const gchar *filename,
				 AsProvideKind provide_kind,
				 GError **error)
{
	g_autofree gchar *name = NULL;
	g_autoptr(AsProvide) provide = NULL;
	g_autoptr(GKeyFile) kf = NULL;

	/* load file */
	kf = g_key_file_new ();
	if (!g_key_file_load_from_file (kf, filename, G_KEY_FILE_NONE, error))
		return FALSE;
	name = g_key_file_get_string (kf, "D-BUS Service", "Name", error);
	if (name == NULL)
		return FALSE;

	/* add provide */
	provide = as_provide_new ();
	as_provide_set_kind (provide, provide_kind);
	as_provide_set_value (provide, name);
	as_app_add_provide (AS_APP (app), provide);
	return TRUE;
}
/**
 * asb_plugin_process_dbus:
 */
static gboolean
asb_plugin_process_dbus (AsbApp *app,
			 const gchar *tmpdir,
			 const gchar *filename,
			 gboolean is_system,
			 GError **error)
{
	_cleanup_free_ gchar *filename_full = NULL;
	_cleanup_free_ gchar *name = NULL;
	_cleanup_keyfile_unref_ GKeyFile *kf = NULL;
	_cleanup_object_unref_ AsProvide *provide = NULL;

	/* load file */
	filename_full = g_build_filename (tmpdir, filename, NULL);
	kf = g_key_file_new ();
	if (!g_key_file_load_from_file (kf, filename_full, G_KEY_FILE_NONE, error))
		return FALSE;
	name = g_key_file_get_string (kf, "D-BUS Service", "Name", error);
	if (name == NULL)
		return FALSE;

	/* add provide */
	provide = as_provide_new ();
	as_provide_set_kind (provide, is_system ? AS_PROVIDE_KIND_DBUS_SYSTEM :
						  AS_PROVIDE_KIND_DBUS);
	as_provide_set_value (provide, name);
	as_app_add_provide (AS_APP (app), provide);
	return TRUE;
}