extensions-tool: Compile GSettings schemas after install
Extensions may soon stop shipping compiled GSchemas, so ensure the schemas are compiled after install, as with GNOME Shell. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2638>
This commit is contained in:
parent
0a4cb82d9a
commit
1670b948c4
@ -95,6 +95,7 @@ install_extension (const char *bundle,
|
|||||||
g_autoptr (GFile) src = NULL;
|
g_autoptr (GFile) src = NULL;
|
||||||
g_autoptr (GFile) dst = NULL;
|
g_autoptr (GFile) dst = NULL;
|
||||||
g_autoptr (GFile) dstdir = NULL;
|
g_autoptr (GFile) dstdir = NULL;
|
||||||
|
g_autoptr (GFile) schemadir = NULL;
|
||||||
g_autoptr (GError) error = NULL;
|
g_autoptr (GError) error = NULL;
|
||||||
g_autofree char *cwd = NULL;
|
g_autofree char *cwd = NULL;
|
||||||
const char *uuid;
|
const char *uuid;
|
||||||
@ -148,6 +149,22 @@ install_extension (const char *bundle,
|
|||||||
if (!g_file_move (tmpdir, dst, G_FILE_COPY_NONE, NULL, NULL, NULL, &error))
|
if (!g_file_move (tmpdir, dst, G_FILE_COPY_NONE, NULL, NULL, NULL, &error))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
schemadir = g_file_get_child (dst, "schemas");
|
||||||
|
|
||||||
|
if (g_file_query_exists (schemadir, NULL))
|
||||||
|
{
|
||||||
|
g_autoptr (GSubprocess) proc = NULL;
|
||||||
|
g_autofree char *schemapath = NULL;
|
||||||
|
|
||||||
|
schemapath = g_file_get_path (schemadir);
|
||||||
|
proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDERR_SILENCE, &error,
|
||||||
|
"glib-compile-schemas", "--strict", schemapath,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (!g_subprocess_wait_check (proc, NULL, &error))
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
Loading…
Reference in New Issue
Block a user