docs: Do not pass the json through stdout

Unicode encoding breaks on windows when doing so
This commit is contained in:
Thibault Saunier 2019-05-14 15:27:05 -04:00 committed by Thibault Saunier
parent e31f06f7f9
commit 56d01406bc
2 changed files with 20 additions and 9 deletions

View file

@ -690,8 +690,9 @@ main (int argc, char *argv[])
GList *features, *tmp;
gint i;
gboolean first = TRUE;
GError *err = NULL;
g_assert (argc >= 2);
g_assert (argc >= 3);
setlocale (LC_ALL, "");
setlocale (LC_NUMERIC, "C");
@ -706,7 +707,7 @@ main (int argc, char *argv[])
gst_init (NULL, NULL);
json = g_string_new ("{");
for (i = 1; i < argc; i++) {
for (i = 2; i < argc; i++) {
gchar *basename;
libfile = argv[i];
plugin = gst_plugin_load_file (libfile, &error);
@ -757,7 +758,13 @@ main (int argc, char *argv[])
}
g_string_append_c (json, '}');
g_print ("%s", json->str);
if (!g_file_set_contents (argv[1], json->str, -1, &err)) {
g_printerr ("Could not set json to %s: %s", argv[1], err->message);
g_clear_error (&err);
return -1;
}
g_string_free (json, TRUE);
return 0;
}

View file

@ -21,6 +21,7 @@ import json
import os
import sys
import subprocess
import tempfile
from collections import OrderedDict
try:
@ -84,7 +85,8 @@ if __name__ == "__main__":
except FileNotFoundError:
pass
cmd = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'gst-hotdoc-plugins-scanner')]
out = output_filename + '.tmp'
cmd = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'gst-hotdoc-plugins-scanner'), out]
gst_plugins_paths = []
for plugin_path in sys.argv[3:]:
cmd.append(plugin_path)
@ -110,10 +112,12 @@ if __name__ == "__main__":
with open(stderrlogfile, 'r') as f:
print(f.read(), file=sys.stderr)
raise
with open(out, 'r') as jfile:
try:
plugins = json.loads(data.decode(), object_pairs_hook=OrderedDict)
plugins = json.load(jfile, object_pairs_hook=OrderedDict)
except json.decoder.JSONDecodeError:
print("Could not decode:\n%s" % data.decode(), file=sys.stderr)
print("Could not decode:\n%s" % jfile.read(), file=sys.stderr)
raise
modified = dict_recursive_update(cache, plugins)