42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
# 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 stat
|
|
import sys
|
|
|
|
def CopyTool(source_path):
|
|
"""Copies the given tool to the current directory, including a warning not
|
|
to edit it."""
|
|
with open(source_path) as source_file:
|
|
tool_source = source_file.readlines()
|
|
|
|
# Add header and write it out to the current directory (which should be the
|
|
# root build dir). Don't write the file if a matching file already exists
|
|
# because that causes a cascade of unnecessary rebuilds.
|
|
match = False
|
|
contents = ''.join([tool_source[0],
|
|
'# Generated by setup_toolchain.py do not edit.\n']
|
|
+ tool_source[1:])
|
|
out_path = 'gyp-mac-tool'
|
|
try:
|
|
with open(out_path, 'rb') as read_tool_file:
|
|
existing_contents = read_tool_file.read()
|
|
if existing_contents == contents:
|
|
match = True
|
|
except:
|
|
pass
|
|
if not match:
|
|
with open(out_path, 'wb') as write_tool_file:
|
|
write_tool_file.write(contents)
|
|
st = os.stat(out_path)
|
|
if (st.st_mode & stat.S_IEXEC) == 0:
|
|
# Only chmod when necessary.
|
|
os.chmod(out_path, st.st_mode | stat.S_IEXEC)
|
|
|
|
# Find the tool source, it's the first argument, and copy it.
|
|
if len(sys.argv) != 2:
|
|
print "Need one argument (mac_tool source path)."
|
|
sys.exit(1)
|
|
CopyTool(sys.argv[1])
|