From b82024917858018309cdafdc147a4eeeb359d2bf Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 15 Dec 2015 14:55:29 +0100 Subject: [PATCH] common: Add xdg_app_compose_ref helper --- common/xdg-app-utils.c | 31 +++++++++++++++++++++++++++++++ common/xdg-app-utils.h | 6 ++++++ 2 files changed, 37 insertions(+) diff --git a/common/xdg-app-utils.c b/common/xdg-app-utils.c index 859dd3e3..b6b1811f 100644 --- a/common/xdg-app-utils.c +++ b/common/xdg-app-utils.c @@ -292,6 +292,37 @@ xdg_app_decompose_ref (const char *full_ref, return g_steal_pointer (&parts); } +char * +xdg_app_compose_ref (gboolean app, + const char *name, + const char *branch, + const char *arch, + GError **error) +{ + if (branch == NULL) + branch = "master"; + + if (!xdg_app_is_valid_name (name)) + { + if (app) + xdg_app_fail (error, "'%s' is not a valid app name", name); + else + xdg_app_fail (error, "'%s' is not a valid runtime name", name); + return NULL; + } + + if (!xdg_app_is_valid_branch (branch)) + { + xdg_app_fail (error, "'%s' is not a valid version name", branch); + return NULL; + } + + if (app) + return xdg_app_build_app_ref (name, branch, arch); + else + return xdg_app_build_runtime_ref (name, branch, arch); +} + char * xdg_app_build_untyped_ref (const char *runtime, const char *branch, diff --git a/common/xdg-app-utils.h b/common/xdg-app-utils.h index e351982c..3f62d2bd 100644 --- a/common/xdg-app-utils.h +++ b/common/xdg-app-utils.h @@ -42,6 +42,12 @@ gboolean xdg_app_is_valid_branch (const char *string); char **xdg_app_decompose_ref (const char *ref, GError **error); +char * xdg_app_compose_ref (gboolean app, + const char *name, + const char *branch, + const char *arch, + GError **error); + char * xdg_app_build_untyped_ref (const char *runtime, const char *branch, const char *arch);