34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
import os, hashlib
|
||
|
|
||
|
# This file contains various utility functions used by the init and build scripts
|
||
|
|
||
|
# Compute the root build and script directory as relative to this file
|
||
|
script_dir = os.path.realpath(os.path.join(__file__, '..'))
|
||
|
root_dir = os.path.realpath(os.path.join(script_dir, '..'))
|
||
|
|
||
|
def runcmd(cmd):
|
||
|
"""Executes a string command in the shell"""
|
||
|
print(cmd)
|
||
|
result = os.system(cmd)
|
||
|
if result != 0:
|
||
|
raise Exception(cmd + ' returned ' + str(result))
|
||
|
|
||
|
def mkdir(dir):
|
||
|
"""Makes a directory if it doesn't exist"""
|
||
|
if not os.path.exists(dir):
|
||
|
print('mkdir -p ' + dir)
|
||
|
return os.makedirs(dir)
|
||
|
|
||
|
def md5_file(filename):
|
||
|
"""Builds a hex md5 hash of the given file"""
|
||
|
md5 = hashlib.md5()
|
||
|
with open(filename, 'rb') as f:
|
||
|
for chunk in iter(lambda: f.read(128 * md5.block_size), b''):
|
||
|
md5.update(chunk)
|
||
|
return md5.hexdigest()
|
||
|
|
||
|
def configure_environment():
|
||
|
"""Configures temporary environment variables required by Chromium's build"""
|
||
|
depot_tools_path = os.path.join(root_dir, 'depot_tools')
|
||
|
os.environ['PATH'] = depot_tools_path + os.pathsep + os.environ['PATH']
|