summaryrefslogtreecommitdiff
path: root/builder
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-03-21 16:36:51 +0100
committerAlexander Larsson <alexl@redhat.com>2016-03-21 16:37:51 +0100
commitb3f9da3648d507ff305a21010dc155e7dc96c150 (patch)
tree4c9504613f6ee2f64f68718307ad5b152ce021e7 /builder
parent1b1e8c26a27e25f968bc37b4858b17d34653c0fd (diff)
downloadxdg-app-b3f9da3648d507ff305a21010dc155e7dc96c150.tar.gz
builder: Build single every-locale extension
This is useful for testing, as well as makes building derived runtimes easier.
Diffstat (limited to 'builder')
-rw-r--r--builder/builder-manifest.c39
-rw-r--r--builder/xdg-app-builder-main.c36
2 files changed, 64 insertions, 11 deletions
diff --git a/builder/builder-manifest.c b/builder/builder-manifest.c
index 8145d7d..645d1c6 100644
--- a/builder/builder-manifest.c
+++ b/builder/builder-manifest.c
@@ -1617,6 +1617,7 @@ builder_manifest_finish (BuilderManifest *self,
g_autofree char *extension_contents = NULL;
g_autoptr(GFileEnumerator) dir_enum = NULL;
g_autoptr(GFileOutputStream) output = NULL;
+ gboolean found_locale = FALSE;
GFileInfo *next;
metadata_file = g_file_get_child (app_dir, "metadata");
@@ -1662,10 +1663,28 @@ builder_manifest_finish (BuilderManifest *self,
G_FILE_CREATE_REPLACE_DESTINATION,
NULL, NULL, error))
return FALSE;
+ found_locale = TRUE;
}
}
+
+ if (found_locale)
+ {
+ g_autoptr(GFile) metadata_locale_file = NULL;
+ g_autofree char *metadata_contents = NULL;
+
+ metadata_locale_file = g_file_get_child (app_dir, "metadata.locale");
+ metadata_contents = g_strdup_printf("[Runtime]\n"
+ "name=%s.Locale\n", self->id);
+ if (!g_file_replace_contents (metadata_locale_file,
+ metadata_contents, strlen (metadata_contents),
+ NULL, FALSE,
+ G_FILE_CREATE_REPLACE_DESTINATION,
+ NULL, NULL, error))
+ return FALSE;
+ }
}
+
if (g_file_query_exists (debuginfo_dir, NULL))
{
g_autoptr(GFile) metadata_file = NULL;
@@ -1886,6 +1905,7 @@ builder_manifest_create_platform (BuilderManifest *self,
g_autoptr(GFileOutputStream) output = NULL;
g_autoptr(GFile) locale_parent_dir = NULL;
GFileInfo *next;
+ gboolean found_locale = FALSE;
metadata_file = g_file_get_child (app_dir, "metadata.platform");
@@ -1931,8 +1951,27 @@ builder_manifest_create_platform (BuilderManifest *self,
G_FILE_CREATE_REPLACE_DESTINATION,
NULL, NULL, error))
return FALSE;
+
+ found_locale = TRUE;
}
}
+
+ if (found_locale)
+ {
+ g_autoptr(GFile) metadata_locale_file = NULL;
+ g_autofree char *metadata_contents = NULL;
+
+ metadata_locale_file = g_file_get_child (app_dir, "metadata.platform.locale");
+ metadata_contents = g_strdup_printf("[Runtime]\n"
+ "name=%s.Locale\n", self->id_platform);
+ if (!g_file_replace_contents (metadata_locale_file,
+ metadata_contents, strlen (metadata_contents),
+ NULL, FALSE,
+ G_FILE_CREATE_REPLACE_DESTINATION,
+ NULL, NULL, error))
+ return FALSE;
+
+ }
}
if (!builder_cache_commit (cache, "Created platform", error))
diff --git a/builder/xdg-app-builder-main.c b/builder/xdg-app-builder-main.c
index e678821..7d00b53 100644
--- a/builder/xdg-app-builder-main.c
+++ b/builder/xdg-app-builder-main.c
@@ -369,20 +369,27 @@ main (int argc,
{
g_autoptr(GFileInfo) child_info = next;
const char *name = g_file_info_get_name (child_info);
- const char *language;
+ const char *language = NULL;
g_autofree char *metadata_arg = NULL;
g_autofree char *files_arg = NULL;
- if (!g_str_has_prefix (name, "metadata.locale."))
- continue;
- language = name + strlen ("metadata.locale.");
+ if (strcmp (name, "metadata.locale") == 0)
+ {
+ g_print ("exporting %s.Locale to repo\n", builder_manifest_get_id (manifest));
+ language = NULL;
+ }
+ else if (g_str_has_prefix (name, "metadata.locale."))
+ {
+ language = name + strlen ("metadata.locale.");
- g_print ("exporting %s.Locale.%s to repo\n", builder_manifest_get_id (manifest), language);
+ g_print ("exporting %s.Locale.%s to repo\n", builder_manifest_get_id (manifest), language);
+ }
+ else
+ continue;
metadata_arg = g_strdup_printf ("--metadata=%s", name);
files_arg = g_strconcat (builder_context_get_build_runtime (build_context) ? "--files=usr" : "--files=files",
- "/share/runtime/locale/",
- language, NULL);
+ "/share/runtime/locale/", language, NULL);
if (!do_export (&error, TRUE,
metadata_arg,
files_arg,
@@ -440,11 +447,18 @@ main (int argc,
g_autofree char *metadata_arg = NULL;
g_autofree char *files_arg = NULL;
- if (!g_str_has_prefix (name, "metadata.platform.locale."))
+ if (strcmp (name, "metadata.platform.locale") == 0)
+ {
+ g_print ("exporting %s.Locale to repo\n", platform_id);
+ language = NULL;
+ }
+ else if (g_str_has_prefix (name, "metadata.platform.locale."))
+ {
+ language = name + strlen ("metadata.platform.locale.");
+ g_print ("exporting %s.Locale.%s to repo\n", platform_id, language);
+ }
+ else
continue;
- language = name + strlen ("metadata.platform.locale.");
-
- g_print ("exporting %s.Locale.%s to repo\n", platform_id, language);
metadata_arg = g_strdup_printf ("--metadata=%s", name);
files_arg = g_strconcat ("--files=platform/share/runtime/locale/", language, NULL);