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; GList *features, *tmp;
gint i; gint i;
gboolean first = TRUE; gboolean first = TRUE;
GError *err = NULL;
g_assert (argc >= 2); g_assert (argc >= 3);
setlocale (LC_ALL, ""); setlocale (LC_ALL, "");
setlocale (LC_NUMERIC, "C"); setlocale (LC_NUMERIC, "C");
@ -706,7 +707,7 @@ main (int argc, char *argv[])
gst_init (NULL, NULL); gst_init (NULL, NULL);
json = g_string_new ("{"); json = g_string_new ("{");
for (i = 1; i < argc; i++) { for (i = 2; i < argc; i++) {
gchar *basename; gchar *basename;
libfile = argv[i]; libfile = argv[i];
plugin = gst_plugin_load_file (libfile, &error); plugin = gst_plugin_load_file (libfile, &error);
@ -757,7 +758,13 @@ main (int argc, char *argv[])
} }
g_string_append_c (json, '}'); 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; return 0;
} }

View file

@ -21,6 +21,7 @@ import json
import os import os
import sys import sys
import subprocess import subprocess
import tempfile
from collections import OrderedDict from collections import OrderedDict
try: try:
@ -84,7 +85,8 @@ if __name__ == "__main__":
except FileNotFoundError: except FileNotFoundError:
pass 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 = [] gst_plugins_paths = []
for plugin_path in sys.argv[3:]: for plugin_path in sys.argv[3:]:
cmd.append(plugin_path) cmd.append(plugin_path)
@ -110,10 +112,12 @@ if __name__ == "__main__":
with open(stderrlogfile, 'r') as f: with open(stderrlogfile, 'r') as f:
print(f.read(), file=sys.stderr) print(f.read(), file=sys.stderr)
raise raise
with open(out, 'r') as jfile:
try: try:
plugins = json.loads(data.decode(), object_pairs_hook=OrderedDict) plugins = json.load(jfile, object_pairs_hook=OrderedDict)
except json.decoder.JSONDecodeError: 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 raise
modified = dict_recursive_update(cache, plugins) modified = dict_recursive_update(cache, plugins)