# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import os.path
import sys

output = sys.argv[1]
parentdir = os.path.abspath(os.path.join(output, os.pardir))

#The original body of this file is generated by this bash script:
#
#touch "${DIR}/git_sha1.h.tmp"
#if test -d .git; then \
#		if which git > /dev/null; then \
#		    git log -n 1 --oneline | \
#			sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
#			> "${DIR}/git_sha1.h.tmp" ; \
#		fi \
#	fi
#if ! cmp -s "${DIR}/git_sha1.h.tmp" "${DIR}/git_sha1.h"; then \
#		mv "${DIR}/git_sha1.h.tmp" "${DIR}/git_sha1.h" ;\
#	else \
#		rm "${DIR}/git_sha1.h.tmp" ;\
#	fi
#
#However, Chromium shouldn't depend on Bash, and this preprocessor macro isn't
#neccessary in the first place

if not os.path.isdir(parentdir):
  os.makedirs(parentdir)

with open(output, "w") as f:
  pass
