script/common.py (56 lines of code) (raw):
#! /usr/bin/env python3
import argparse, base64, os, platform, re, subprocess
def create_parser(version_required=False):
parser = argparse.ArgumentParser()
parser.add_argument('--build-type', default='Release')
parser.add_argument('--version', required=version_required)
parser.add_argument('--classifier')
parser.add_argument('--host')
parser.add_argument('--machine')
parser.add_argument('--ndk')
parser.add_argument('--target')
return parser
def host():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.host if args.host else {'Darwin': 'macos', 'Linux': 'linux', 'Windows': 'windows'}[platform.system()]
def host_machine():
return {'AMD64': 'x64', 'x86_64': 'x64', 'arm64': 'arm64', 'aarch64': 'arm64'}[platform.machine()]
def machine():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.machine if args.machine else {'AMD64': 'x64', 'x86_64': 'x64', 'arm64': 'arm64', 'aarch64': 'arm64'}[platform.machine()]
def target():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.target if args.machine else host()
def version():
parser = create_parser()
args = parser.parse_args()
if args.version:
return args.version
branches = subprocess.check_output(['git', 'branch', '--contains', 'HEAD']).decode('utf-8')
for match in re.finditer('chrome/(m\\d+)', branches):
version = match.group(1)
revision = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('utf-8')
return version + '-' + revision.strip()[:10]
def build_type():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.build_type
def classifier():
parser = create_parser()
(args, _) = parser.parse_known_args()
return '-' + args.classifier if args.classifier else ''
def github_headers():
if os.environ.get('GITHUB_BASIC'):
auth = 'Basic ' + base64.b64encode(os.environ.get('GITHUB_BASIC').encode('utf-8')).decode('utf-8')
else:
auth = 'Bearer ' + os.environ.get('GITHUB_TOKEN')
return {
'Accept': 'application/vnd.github.v3+json',
'Authorization': auth
}
def ndk():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.ndk if args.ndk else ''