summaryrefslogtreecommitdiffstats
path: root/scripts/update-project-files.py
blob: e2d1dfb957ce9ffb66a2adda2dc6d81586bcf271 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python -Es
# vim: et:sw=4:ts=4:sts=4
#
# Script regenerates project file list from the list of files tracked by Git.
#

SOURCES = [
    "src/*.c", "src/*.h", "src/*.rl",
    "tests/*.c", "tests/*.h",
    "tests-fuzz/*.c", "tests-fuzz/*.h",
]

SOURCES_EXTRA = [
]

OUTPUT_FILE = "Knot.files"

# ----------------------------------------------------------------------------

from subprocess import Popen, PIPE
import os
import sys

def run(command):
    p = Popen(command, stdout=PIPE, stderr=PIPE)
    (out, errout) = p.communicate()
    if p.returncode != 0:
        raise Exception("Command %s failed.", command)
    return out

print >>sys.stderr, "Updating %s." % OUTPUT_FILE

git_root = run(["git", "rev-parse", "--show-toplevel"]).strip()
os.chdir(git_root)

command = ["git", "ls-files"] + SOURCES
files = run(command).splitlines() + SOURCES_EXTRA

with open(OUTPUT_FILE, "w") as output:
    output.write("\n".join(sorted(files)))
    output.write("\n")