git_sha1_gen.py: fix out-of-date comment
[mesa.git] / bin / git_sha1_gen.py
old mode 100755 (executable)
new mode 100644 (file)
index 87e06a8..7fb5c99
@@ -1,11 +1,9 @@
-#!/usr/bin/env python
-
 """
 Generate the contents of the git_sha1.h file.
-The output of this script goes to stdout.
 """
 
 
+import argparse
 import os
 import os.path
 import subprocess
@@ -27,7 +25,25 @@ def get_git_sha1():
         git_sha1 = ''
     return git_sha1
 
+def write_if_different(contents):
+    """
+    Avoid touching the output file if it doesn't need modifications
+    Useful to avoid triggering rebuilds when nothing has changed.
+    """
+    if os.path.isfile(args.output):
+        with open(args.output, 'r') as file:
+            if file.read() == contents:
+                return
+    with open(args.output, 'w') as file:
+        file.write(contents)
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--output', help='File to write the #define in',
+                    required=True)
+args = parser.parse_args()
 
 git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
 if git_sha1:
-    sys.stdout.write('#define MESA_GIT_SHA1 "git-%s"\n' % git_sha1.rstrip())
+    write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"')
+else:
+    write_if_different('#define MESA_GIT_SHA1 ""')