diff options
author | Richard Hughes <richard@hughsie.com> | 2014-06-13 16:55:33 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2014-06-13 17:04:56 +0100 |
commit | 70ff3a5aaf1658deb158de1ecf4942fe63dc2310 (patch) | |
tree | 5cc9d7293febb1ac78d19d4c57a284cd6c4c0249 /libappstream-glib | |
parent | f32a4e4c10e9f6b6bfb2a6a671d6d1802d4efe41 (diff) | |
download | appstream-glib-70ff3a5aaf1658deb158de1ecf4942fe63dc2310.tar.gz |
Add as_app_guess_source_kind()
Diffstat (limited to 'libappstream-glib')
-rw-r--r-- | libappstream-glib/as-app.c | 28 | ||||
-rw-r--r-- | libappstream-glib/as-app.h | 2 |
2 files changed, 30 insertions, 0 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c index bf2a50a..1c7b76a 100644 --- a/libappstream-glib/as-app.c +++ b/libappstream-glib/as-app.c @@ -112,6 +112,34 @@ as_app_error_quark (void) } /** + * as_app_guess_source_kind: + * @filename: a file name + * + * Guesses the source kind based from the filename. + * + * Return value: A #AsAppSourceKind, e.g. %AS_APP_SOURCE_KIND_APPSTREAM. + * + * Since: 0.1.8 + **/ +AsAppSourceKind +as_app_guess_source_kind (const gchar *filename) +{ + if (g_str_has_suffix (filename, ".xml.gz")) + return AS_APP_SOURCE_KIND_APPSTREAM; + if (g_str_has_suffix (filename, ".desktop")) + return AS_APP_SOURCE_KIND_DESKTOP; + if (g_str_has_suffix (filename, ".appdata.xml")) + return AS_APP_SOURCE_KIND_APPDATA; + if (g_str_has_suffix (filename, ".appdata.xml.in")) + return AS_APP_SOURCE_KIND_APPDATA; + if (g_str_has_suffix (filename, ".metainfo.xml")) + return AS_APP_SOURCE_KIND_METAINFO; + if (g_str_has_suffix (filename, ".metainfo.xml.in")) + return AS_APP_SOURCE_KIND_METAINFO; + return AS_APP_SOURCE_KIND_UNKNOWN; +} + +/** * as_app_finalize: **/ static void diff --git a/libappstream-glib/as-app.h b/libappstream-glib/as-app.h index 37cbf64..e7ce663 100644 --- a/libappstream-glib/as-app.h +++ b/libappstream-glib/as-app.h @@ -136,6 +136,7 @@ typedef enum { * @AS_APP_SOURCE_KIND_APPSTREAM: Sourced from a AppStream file * @AS_APP_SOURCE_KIND_DESKTOP: Sourced from a desktop file * @AS_APP_SOURCE_KIND_APPDATA: Sourced from a AppData file + * @AS_APP_SOURCE_KIND_METAINFO: Sourced from a MetaInfo file * * The source kind. **/ @@ -154,6 +155,7 @@ typedef enum { GType as_app_get_type (void); AsApp *as_app_new (void); GQuark as_app_error_quark (void); +AsAppSourceKind as_app_guess_source_kind (const gchar *filename); /* getters */ AsIconKind as_app_get_icon_kind (AsApp *app); |