Blame gio/tests/gengiotypefuncs.py

Packit ae235b
#!/usr/bin/env python3
Packit ae235b
# -*- coding: utf-8 -*-
Packit ae235b
Packit ae235b
import sys
Packit ae235b
import re
Packit ae235b
import os
Packit ae235b
Packit ae235b
debug = os.getenv('GIO_GENTYPEFUNCS_DEBUG') is not None
Packit ae235b
Packit ae235b
out_file = sys.argv[1]
Packit ae235b
in_files = sys.argv[2:]
Packit ae235b
Packit ae235b
funcs = []
Packit ae235b
Packit ae235b
Packit ae235b
if debug: print ('Output file: ', out_file)
Packit ae235b
Packit ae235b
if debug: print (len(in_files), 'input files')
Packit ae235b
Packit ae235b
for filename in in_files:
Packit ae235b
  if debug: print ('Input file: ', filename)
Packit ae235b
  with open(filename, "r") as f:
Packit ae235b
    for line in f:
Packit ae235b
      line = line.rstrip('\n').rstrip('\r')
Packit ae235b
      # print line
Packit ae235b
      match = re.search(r'\bg_[a-zA-Z0-9_]*_get_type\b', line)
Packit ae235b
      if match:
Packit ae235b
        func = match.group(0)
Packit ae235b
        if not func in funcs:
Packit ae235b
          funcs.append(func)
Packit ae235b
          if debug: print ('Found ', func)
Packit ae235b
Packit ae235b
file_output = 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS\n'
Packit ae235b
Packit ae235b
funcs = sorted(funcs)
Packit ae235b
Packit ae235b
for f in funcs:
Packit ae235b
  if f not in ['g_io_extension_get_type', 'g_settings_backend_get_type']:
Packit ae235b
    file_output += '*tp++ = {0} ();\n'.format(f)
Packit ae235b
Packit ae235b
if debug: print (len(funcs), 'functions')
Packit ae235b
Packit ae235b
ofile = open(out_file, "w")
Packit ae235b
ofile.write(file_output)
Packit ae235b
ofile.close()