1#!/usr/bin/env python 2# Copyright (c) 2011 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6""" 7appid.py -- Chromium appid header file generation utility. 8""" 9 10import optparse 11import sys 12 13GENERATED_APPID_INCLUDE_FILE_CONTENTS = """ 14// This file is automatically generated by appid.py. 15// It contains the Google Update Appid used for this build. Note that 16// the Appid will be empty for non Google Chrome builds. 17namespace google_update { 18const wchar_t kChromeGuid[] = L"%s"; 19} 20""" 21 22def GenerateAppIdHeader(opts): 23 contents = GENERATED_APPID_INCLUDE_FILE_CONTENTS % opts.appid 24 25 try: 26 ofp = open(opts.output_file, 'r') 27 except EnvironmentError: 28 current_contents = None 29 else: 30 current_contents = ofp.read() 31 32 if contents != current_contents: 33 open(opts.output_file, 'w').write(contents) 34 35def main(): 36 parser = optparse.OptionParser() 37 parser.add_option('-a', '--appid', 38 help='The Google Update App Id of the Chrome being built.') 39 parser.add_option('-o', '--output_file', 40 help='The path to the generated output header file') 41 42 (opts, args) = parser.parse_args() 43 44 if opts.appid is None or not opts.output_file: 45 parser.print_help() 46 return 1 47 48 # Log a trace in the build output when we run. 49 print "Generating appid header... ", 50 GenerateAppIdHeader(opts) 51 52 print "Done." 53 54 55if __name__ == '__main__': 56 sys.exit(main()) 57