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; }