368ca30641
* remove not needed imports * remove semicolons
41 lines
985 B
Python
Executable File
41 lines
985 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os, re, sys, subprocess, shutil, tempfile
|
|
|
|
os.chdir (os.path.dirname (__file__))
|
|
|
|
if len (sys.argv) < 2:
|
|
ragel_sources = [x for x in os.listdir ('.') if x.endswith ('.rl')]
|
|
else:
|
|
ragel_sources = sys.argv[2:]
|
|
|
|
ragel = shutil.which ('ragel')
|
|
|
|
if not ragel:
|
|
print ('You have to install ragel if you are going to develop HarfBuzz itself')
|
|
exit (1)
|
|
|
|
if not len (ragel_sources):
|
|
exit (77)
|
|
|
|
tempdir = tempfile.mkdtemp ()
|
|
|
|
for rl in ragel_sources:
|
|
hh = rl.replace ('.rl', '.hh')
|
|
shutil.copy (rl, tempdir)
|
|
# writing to stdout has some complication on Windows
|
|
subprocess.Popen ([ragel, '-e', '-F1', '-o', hh, rl], cwd=tempdir).wait ()
|
|
|
|
generated_path = os.path.join (tempdir, hh)
|
|
with open (generated_path, "rb") as temp_file:
|
|
generated = temp_file.read()
|
|
|
|
with open (hh, "rb") as current_file:
|
|
current = current_file.read()
|
|
|
|
# overwrite only if is changed
|
|
if generated != current:
|
|
shutil.copyfile (generated_path, hh)
|
|
|
|
shutil.rmtree (tempdir)
|