Mercurial > hg > orthanc-postgresql
view Resources/Graveyard/CheckAutoconfiguration.py @ 151:a4a532a60838
sync, support linux standard base
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 03 Jan 2018 16:58:59 +0100 (2018-01-03) |
parents | d7cae66abeb6 |
children |
line wrap: on
line source
#!/usr/bin/python import os import platform import re import sys if (len(sys.argv) > 3 or (len(sys.argv) == 2 and sys.argv[1] in [ '-h', '--help' ])): print('Usage: %s <Platform> [Path to pg_config.h]' % sys.argv[0]) print('') print('Example: %s linux64 ~/Subversion/orthanc-postgresql/s/AUTOGENERATED/pg_config.h' % sys.argv[0]) print('') exit(-1) if len(sys.argv) >= 2: PLATFORM = sys.argv[1] else: ARCH = platform.architecture()[0] if ARCH == '64bit': ARCH = 64 elif ARCH == '32bit': ARCH = 32 else: raise Exception('Unknown architecture: %s' % ARCH) SYSTEM = platform.system() if SYSTEM == 'Linux': SYSTEM = 'linux' elif SYSTEM == 'Darwin': SYSTEM = 'darwin' elif SYSTEM == 'Windows': SYSTEM = 'windows' elif SYSTEM == 'OpenBSD': SYSTEM = 'openbsd' elif SYSTEM == 'FreeBSD': SYSTEM = 'freebsd' else: raise Exception('Unknown system: %s' % SYSTEM) PLATFORM = '%s%d' % (SYSTEM, ARCH) print('Testing platform: %s' % PLATFORM) REFERENCE = os.path.join(os.path.dirname(__file__), 'pg_config-%s.h' % PLATFORM) print('Reference file: %s' % REFERENCE) if len(sys.argv) >= 3: GENERATED = sys.argv[2] else: GENERATED = os.path.join(os.getcwd(), 'AUTOGENERATED', 'pg_config.h') print('Autogenerated file: %s\n' % GENERATED) def GetDefinitions(path): defs = {} r = re.compile(r'^#define ([a-zA-Z0-9_]+)\s+?($|.+)') with open(path, 'r') as f: for l in f.readlines(): l = l.strip() p = l.find('/*') if p >= 0: l = l[0:p] m = r.match(l) if m != None: defs[m.group(1)] = m.group(2) #print(m.group(1), m.group(2)) return defs reference = GetDefinitions(REFERENCE) generated = GetDefinitions(GENERATED) for (key, value) in generated.items(): if not key in reference: print('Key not in reference: %s == %s' % (key, value)) print('') for (key, value) in generated.items(): if key in reference and reference[key] != value: print('Bad value for key %s: %s != %s' % (key, value, reference[key])) print('')