blob: 29fc817776c1bc5365619e81f9a6adf00c607384 [file] [log] [blame]
# Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.
from __future__ import absolute_import
from __future__ import print_function
from date_util import *
from file_util import *
from optparse import OptionParser
import os
import re
from readme_util import read_readme_file
import shlex
import subprocess
import git_util as git
import sys
import zipfile
def get_readme_component(name):
""" Loads a README file component. """
paths = []
# platform directory
paths.append(os.path.join(script_dir, 'distrib', platform))
# shared directory
paths.append(os.path.join(script_dir, 'distrib'))
# load the file if it exists
for path in paths:
file = os.path.join(path, 'README.' + name + '.txt')
if path_exists(file):
return read_file(file)
raise Exception('Readme component not found: ' + name)
def create_readme():
""" Creates the README.TXT file. """
# gather the components
header_data = get_readme_component('header')
mode_data = get_readme_component('standard')
redistrib_data = get_readme_component('redistrib')
footer_data = get_readme_component('footer')
# format the file
data = header_data + '\n\n' + mode_data + '\n\n' + redistrib_data + '\n\n' + footer_data
data = data.replace('$JCEF_URL$', jcef_url)
data = data.replace('$JCEF_REV$', jcef_commit_hash)
data = data.replace('$JCEF_VER$', jcef_ver)
data = data.replace('$CEF_URL$', cef_url)
data = data.replace('$CEF_VER$', cef_ver)
data = data.replace('$CHROMIUM_URL$', chromium_url)
data = data.replace('$CHROMIUM_VER$', chromium_ver)
data = data.replace('$DATE$', date)
if platform == 'win32':
platform_str = 'Windows 32-bit'
elif platform == 'win64':
platform_str = 'Windows 64-bit'
elif platform == 'macosx64':
platform_str = 'Mac OS-X 64-bit'
elif platform == 'linux32':
platform_str = 'Linux 32-bit'
elif platform == 'linux64':
platform_str = 'Linux 64-bit'
data = data.replace('$PLATFORM$', platform_str)
write_file(os.path.join(output_dir, 'README.txt'), data.encode('utf-8'))
if not options.quiet:
sys.stdout.write('Creating README.TXT file.\n')
# cannot be loaded as a module
if __name__ != "__main__":
sys.stderr.write('This file cannot be loaded as a module!')
sys.exit()
# parse command-line options
disc = """
This utility builds the JCEF README.txt for the distribution.
"""
parser = OptionParser(description=disc)
parser.add_option(
'--output-dir',
dest='outputdir',
metavar='DIR',
help='output directory [required]')
parser.add_option(
'--platform',
dest='platform',
help='target platform for distribution [required]')
parser.add_option(
'-q',
'--quiet',
action='store_true',
dest='quiet',
default=False,
help='do not output detailed status information')
(options, args) = parser.parse_args()
# the outputdir option is required
if options.outputdir is None or options.platform is None:
parser.print_help(sys.stderr)
sys.exit(1)
output_dir = options.outputdir
# Test the operating system.
platform = options.platform
if (platform != 'linux32' and platform != 'linux64' and
platform != 'macosx64' and platform != 'win32' and platform != 'win64'):
print('Unsupported target \"' + platform + '\"')
sys.exit(1)
# script directory
script_dir = os.path.dirname(__file__)
# JCEF root directory
jcef_dir = os.path.abspath(os.path.join(script_dir, os.pardir))
# Read and parse the CEF version file.
args = {}
read_readme_file(os.path.join(jcef_dir, 'jcef_build', 'README.txt'), args)
# retrieve url and revision information for CEF
if not git.is_checkout(jcef_dir):
raise Exception('Not a valid checkout: %s' % (jcef_dir))
jcef_commit_number = git.get_commit_number(jcef_dir)
jcef_commit_hash = git.get_hash(jcef_dir)
jcef_url = git.get_url(jcef_dir)
jcef_ver = '%s.%s.%s.%s+g%s' % (args['CEF_MAJOR'], args['CEF_MINOR'],
args['CEF_PATCH'], jcef_commit_number,
jcef_commit_hash[:7])
date = get_date()
cef_ver = args['CEF_VER']
cef_url = args['CEF_URL']
chromium_ver = args['CHROMIUM_VER']
chromium_url = args['CHROMIUM_URL']
# create the README.TXT file
create_readme()