summaryrefslogtreecommitdiff
path: root/thumbnailer/gen-thumbnailer.py
diff options
context:
space:
mode:
Diffstat (limited to 'thumbnailer/gen-thumbnailer.py')
-rw-r--r--thumbnailer/gen-thumbnailer.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/thumbnailer/gen-thumbnailer.py b/thumbnailer/gen-thumbnailer.py
new file mode 100644
index 000000000..9994043f9
--- /dev/null
+++ b/thumbnailer/gen-thumbnailer.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+
+# Ancillary wrapper around gdk-pixbuf-print-mime-types that sets up a
+# modified environment in order to use the tools that we just built
+# instead of the system ones
+
+import argparse
+import os
+import subprocess
+import sys
+
+argparser = argparse.ArgumentParser(description='Compile resources')
+argparser.add_argument('--printer', metavar='PATH', help='Path to gdk-pixbuf-print-mime-types')
+argparser.add_argument('--pixdata', metavar='PATH', help='Path to gdk-pixbuf-pixdata')
+argparser.add_argument('--loaders', metavar='PATH', help='Path to the loaders.cache file')
+argparser.add_argument('--bindir', metavar='PATH', help='Path to the source directory')
+argparser.add_argument('input', help='Template file')
+argparser.add_argument('output', help='Output file')
+
+args = argparser.parse_args()
+
+newenv = os.environ.copy()
+newenv['GDK_PIXBUF_PIXDATA'] = args.pixdata
+newenv['GDK_PIXBUF_MODULE_FILE'] = args.loaders
+
+cmd = args.printer
+
+mimetypes_out = subprocess.Popen(cmd, env=newenv, stdout=subprocess.PIPE).communicate()[0]
+if not mimetypes_out:
+ sys.exit(1)
+
+infile = open(args.input, 'r')
+outfile = open(args.output, 'w')
+
+for line in infile:
+ line = line.replace('@bindir@', args.bindir)
+ line = line.replace('@mimetypes@', mimetypes_out.decode('ascii'))
+ outfile.write(line)
+
+infile.close()
+outfile.close()
+
+sys.exit(0)