[tepl] tools: implement shared-mime-info-list-text-plain-globs



commit 56de388367c6bc94ea4a8ad468a85f0d2196c8fe
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri May 15 02:27:29 2020 +0200

    tools: implement shared-mime-info-list-text-plain-globs

 .../.gitignore                                     |  1 +
 .../compile.sh                                     |  3 +++
 .../globs-to-add                                   |  1 +
 .../globs-to-ignore                                | 20 +++++++++++++++
 .../mime-type-is-text-plain.c                      | 27 +++++++++++++++++++
 .../shared-mime-info-list-text-plain-globs.sh      | 30 ++++++++++++++++++++++
 6 files changed, 82 insertions(+)
---
diff --git a/tools/shared-mime-info-list-text-plain-globs/.gitignore 
b/tools/shared-mime-info-list-text-plain-globs/.gitignore
new file mode 100644
index 0000000..eba48aa
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/.gitignore
@@ -0,0 +1 @@
+mime-type-is-text-plain
diff --git a/tools/shared-mime-info-list-text-plain-globs/compile.sh 
b/tools/shared-mime-info-list-text-plain-globs/compile.sh
new file mode 100755
index 0000000..51995fc
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/compile.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gcc -o mime-type-is-text-plain -Wall -Wextra `pkg-config --cflags --libs gio-2.0` mime-type-is-text-plain.c
diff --git a/tools/shared-mime-info-list-text-plain-globs/globs-to-add 
b/tools/shared-mime-info-list-text-plain-globs/globs-to-add
new file mode 100644
index 0000000..1e2da57
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/globs-to-add
@@ -0,0 +1 @@
+*.build
diff --git a/tools/shared-mime-info-list-text-plain-globs/globs-to-ignore 
b/tools/shared-mime-info-list-text-plain-globs/globs-to-ignore
new file mode 100644
index 0000000..825b31f
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/globs-to-ignore
@@ -0,0 +1,20 @@
+*.abw.gz
+authors
+changelog
+cmakelists.txt
+copying
+credits
+gmon.out
+gnumakefile
+install
+makefile
+makefile.*
+meson.build
+meson_options.txt
+pom.xml
+readme*
+sconscript
+sconscript.*
+sconstruct
+settings.xml
+*,v
diff --git a/tools/shared-mime-info-list-text-plain-globs/mime-type-is-text-plain.c 
b/tools/shared-mime-info-list-text-plain-globs/mime-type-is-text-plain.c
new file mode 100644
index 0000000..a361bd3
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/mime-type-is-text-plain.c
@@ -0,0 +1,27 @@
+/* SPDX-FileCopyrightText: 2020 - Sébastien Wilmet <swilmet gnome org>
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ */
+
+#include <gio/gio.h>
+
+int
+main (int    argc,
+      char **argv)
+{
+       const gchar *mime_type;
+
+       if (argc != 2)
+       {
+               g_printerr ("Usage: %s <mime-type>\n", argv[0]);
+               return EXIT_FAILURE;
+       }
+
+       mime_type = argv[1];
+
+       if (g_content_type_is_a (mime_type, "text/plain"))
+       {
+               return EXIT_SUCCESS;
+       }
+
+       return EXIT_FAILURE;
+}
diff --git a/tools/shared-mime-info-list-text-plain-globs/shared-mime-info-list-text-plain-globs.sh 
b/tools/shared-mime-info-list-text-plain-globs/shared-mime-info-list-text-plain-globs.sh
new file mode 100755
index 0000000..ef906de
--- /dev/null
+++ b/tools/shared-mime-info-list-text-plain-globs/shared-mime-info-list-text-plain-globs.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# SPDX-FileCopyrightText: 2020 - Sébastien Wilmet <swilmet gnome org>
+# SPDX-License-Identifier: LGPL-3.0-or-later
+
+shared_mime_info_xml_file='/usr/share/mime/packages/freedesktop.org.xml'
+tmp_dir='/tmp/tepl-shared-mime-info-tool/'
+
+# Have only the shared-mime-info database, not additional mime types from other
+# packages.
+rm -rf "$tmp_dir"
+mkdir -p "$tmp_dir/packages/"
+cp "$shared_mime_info_xml_file" "$tmp_dir/packages/"
+update-mime-database "$tmp_dir" 2>/dev/null
+
+sed '/^#/d' "${tmp_dir}/globs2" | cut -d':' -f'2,3'  > "${tmp_dir}/globs2-simplified"
+
+for line in `cat "${tmp_dir}/globs2-simplified"`
+do
+       mime_type=`echo "$line" | cut -d':' -f1`
+       glob=`echo "$line" | cut -d':' -f2`
+
+       if `./mime-type-is-text-plain "$mime_type"`
+       then
+               echo "$glob"
+       fi
+done | sort | uniq > "${tmp_dir}/text-plain-globs"
+
+comm -2 -3 "${tmp_dir}/text-plain-globs" globs-to-ignore > "${tmp_dir}/text-plain-globs-filtered"
+cat "${tmp_dir}/text-plain-globs-filtered" globs-to-add | sort | uniq > "${tmp_dir}/text-plain-globs-final"
+cat "${tmp_dir}/text-plain-globs-final"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]