# 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()