From 7e3b1ef650970fb79f0a1e9a549583c5fad540fd Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Wed, 4 Mar 2020 17:14:18 +0000 Subject: [PATCH] bin: Factor out jsonify_os_release Signed-off-by: Simon McVittie <smcv@collabora.com> --- bin/system-info.c | 195 ++++++++++++++++++++++++---------------------- 1 file changed, 101 insertions(+), 94 deletions(-) diff --git a/bin/system-info.c b/bin/system-info.c index 7192ab25c..bd5ac00c4 100644 --- a/bin/system-info.c +++ b/bin/system-info.c @@ -532,6 +532,106 @@ print_vdpau_details (JsonBuilder *builder, json_builder_end_array (builder); // End vdpau_drivers } +static void +jsonify_os_release (JsonBuilder *builder, + SrtSystemInfo *info) +{ + json_builder_set_member_name (builder, "os-release"); + json_builder_begin_object (builder); + { + GStrv strv; + gsize i; + gchar *tmp; + + tmp = srt_system_info_dup_os_id (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "id"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + strv = srt_system_info_dup_os_id_like (info, FALSE); + + if (strv != NULL) + { + json_builder_set_member_name (builder, "id_like"); + json_builder_begin_array (builder); + { + for (i = 0; strv[i] != NULL; i++) + json_builder_add_string_value (builder, strv[i]); + } + json_builder_end_array (builder); + g_strfreev (strv); + } + + tmp = srt_system_info_dup_os_name (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "name"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_pretty_name (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "pretty_name"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_version_id (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "version_id"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_version_codename (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "version_codename"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_build_id (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "build_id"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_variant_id (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "variant_id"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + + tmp = srt_system_info_dup_os_variant (info); + + if (tmp != NULL) + { + json_builder_set_member_name (builder, "variant"); + json_builder_add_string_value (builder, tmp); + g_free (tmp); + } + } + json_builder_end_object (builder); +} + static const char * const locales[] = { "", @@ -743,100 +843,7 @@ main (int argc, } json_builder_end_object (builder); - json_builder_set_member_name (builder, "os-release"); - json_builder_begin_object (builder); - { - GStrv strv; - gsize i; - gchar *tmp; - - tmp = srt_system_info_dup_os_id (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "id"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - strv = srt_system_info_dup_os_id_like (info, FALSE); - - if (strv != NULL) - { - json_builder_set_member_name (builder, "id_like"); - json_builder_begin_array (builder); - { - for (i = 0; strv[i] != NULL; i++) - json_builder_add_string_value (builder, strv[i]); - } - json_builder_end_array (builder); - g_strfreev (strv); - } - - tmp = srt_system_info_dup_os_name (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "name"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_pretty_name (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "pretty_name"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_version_id (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "version_id"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_version_codename (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "version_codename"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_build_id (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "build_id"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_variant_id (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "variant_id"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - - tmp = srt_system_info_dup_os_variant (info); - - if (tmp != NULL) - { - json_builder_set_member_name (builder, "variant"); - json_builder_add_string_value (builder, tmp); - g_free (tmp); - } - } - json_builder_end_object (builder); + jsonify_os_release (builder, info); json_builder_set_member_name (builder, "driver_environment"); json_builder_begin_array (builder); -- GitLab