summaryrefslogtreecommitdiffstats
path: root/scripts/MakeHeader.py
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2020-08-23 11:24:52 +1000
committerNathan Scott <nathans@redhat.com>2020-08-23 11:24:52 +1000
commit9e57b5c3f48c15aa8fb0ced408ec745eb6ad8874 (patch)
tree5b9d9bb52640880e50722c7aba3066d518317d26 /scripts/MakeHeader.py
parentb3aef4ea3a043c1988451bf237902fa77bccb0d5 (diff)
Generate an appropriate shebang line for MakeHeader script3.0.0rc2
Use configure.ac to handle platform differences where some build hosts have only a python3, or only python, binary. Related to https://github.com/htop-dev/htop/pull/6
Diffstat (limited to 'scripts/MakeHeader.py')
-rwxr-xr-xscripts/MakeHeader.py104
1 files changed, 0 insertions, 104 deletions
diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py
deleted file mode 100755
index 3ef34b88..00000000
--- a/scripts/MakeHeader.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python
-import os, sys, string, io
-try:
- from StringIO import StringIO
-except ImportError:
- StringIO = io.StringIO
-
-ANY=1
-COPY=2
-SKIP=3
-SKIPONE=4
-
-state = ANY
-static = 0
-
-file = io.open(sys.argv[1], "r", encoding="utf-8")
-name = sys.argv[1][:-2]
-
-out = StringIO()
-
-selfheader = '#include "' + name + '.h"'
-
-out.write( "/* Do not edit this file. It was automatically generated. */\n" )
-out.write( "\n" )
-
-out.write( "#ifndef HEADER_" + os.path.basename(name) + "\n")
-out.write( "#define HEADER_" + os.path.basename(name) + "\n")
-is_blank = False
-for line in file.readlines():
- line = line[:-1]
- if state == ANY:
- if line == '/*{':
- state = COPY
- elif line == selfheader:
- pass
- elif line.find("#include") == 0:
- pass
- elif line.find("htop - ") == 0 and line[-2:] == ".c":
- out.write(line[:-2] + ".h\n")
- elif line.find("static ") != -1:
- if line[-1] == "{":
- state = SKIP
- static = 1
- else:
- state = SKIPONE
- elif len(line) > 1:
- static = 0
- equals = line.find(" = ")
- if line[-3:] == "= {":
- out.write( "extern " + line[:-4] + ";\n" )
- state = SKIP
- elif equals != -1:
- out.write("extern " + line[:equals] + ";\n" )
- elif line.startswith("typedef struct"):
- state = SKIP
- elif line[-1] == "{":
- out.write("extern " + line[:-2].replace("inline ", "") + ";\n")
- state = SKIP
- elif line[-1] == ";":
- out.write("extern " + line + "\n")
- else:
- out.write( line + "\n")
- is_blank = False
- elif line == "":
- if not is_blank:
- out.write( line + "\n")
- is_blank = True
- else:
- out.write( line + "\n")
- is_blank = False
- elif state == COPY:
- is_blank = False
- if line == "}*/":
- state = ANY
- else:
- out.write( line + "\n")
- elif state == SKIP:
- is_blank = False
- if len(line) >= 1 and line[0] == "}":
- if static == 1:
- state = SKIPONE
- else:
- state = ANY
- static = 0
- elif state == SKIPONE:
- is_blank = False
- state = ANY
-
-out.write( "\n" )
-out.write( "#endif\n" )
-
-# only write a new .h file if something changed.
-# This prevents a lot of recompilation during development
-out.seek(0)
-try:
- with io.open(name + ".h", "r", encoding="utf-8") as orig:
- origcontents = orig.readlines()
-except:
- origcontents = ""
-if origcontents != out.readlines():
- with io.open(name + ".h", "w", encoding="utf-8") as new:
- print("Writing "+name+".h")
- new.write(out.getvalue())
-out.close()

© 2014-2024 Faster IT GmbH | imprint | privacy policy