#!/usr/bin/env python
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""
appid.py -- Chromium appid header file generation utility.
"""

import optparse
import sys

GENERATED_APPID_INCLUDE_FILE_CONTENTS = """
// This file is automatically generated by appid.py.
// It contains the Google Update Appid used for this build. Note that
// the Appid will be empty for non Google Chrome builds.
namespace google_update {
const wchar_t kChromeGuid[] = L"%s";
}
"""

def GenerateAppIdHeader(opts):
  contents = GENERATED_APPID_INCLUDE_FILE_CONTENTS % opts.appid

  try:
    ofp = open(opts.output_file, 'r')
  except EnvironmentError:
    current_contents = None
  else:
    current_contents = ofp.read()

  if contents != current_contents:
    open(opts.output_file, 'w').write(contents)

def main():
  parser = optparse.OptionParser()
  parser.add_option('-a', '--appid',
                    help='The Google Update App Id of the Chrome being built.')
  parser.add_option('-o', '--output_file',
                    help='The path to the generated output header file')

  (opts, args) = parser.parse_args()

  if opts.appid is None or not opts.output_file:
    parser.print_help()
    return 1

  # Log a trace in the build output when we run.
  print "Generating appid header... ",
  GenerateAppIdHeader(opts)

  print "Done."


if __name__ == '__main__':
  sys.exit(main())