#!/usr/bin/env python
# This file is used to automatically extract the SVN revision number and
# create a C include file.

# In MSVS, you can add the following Pre-Build Step to use this script:
#   cd $(InputDir)core\build
#   c:\Python24\python.exe make-svn-rev-header.py

# This is intended for use with a custom version.cpp,
# as described in version.cpp

from xml.dom.minidom import parse
from time import gmtime, strftime
from os.path import isfile
from sys import exit

entries_file = parse('../.svn/entries')

def getRevision(entries):
    for entry in entries:
        if entry.getAttribute("name") == "":
            return entry.getAttribute("revision")

revision = getRevision(entries_file.getElementsByTagName("entry"))

if isfile("svn-revision.h"):
    infile = file("svn-revision.h", "r")
    for ln in infile:
        if ln == "#define BUILD_SVN_REVISION " + revision + "\n":
            infile.close()
            exit()

outfile = file("svn-revision.h", "w+")
outfile.write("// This file is automatically generated by make-svn-rev-header.py\n")
outfile.write("// Do not modify or add to revision control\n\n")
outfile.write("#define BUILD_SVN_REVISION " + revision + "\n")
outfile.close()