#!/usr/bin/python2

# Copyright 2015 Google Inc.  All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Generate .gclient file for Angle.

Because gclient won't accept "--name ." use a different name then edit.
"""

import subprocess
import sys


def main():
  gclient_cmd = ('gclient config --name change2dot --unmanaged '
      'https://chromium.googlesource.com/angle/angle.git')
  try:
    rc = subprocess.call(gclient_cmd, shell=True)
  except OSError:
    print 'could not run "%s" via shell' % gclient_cmd
    sys.exit(1)

  if rc:
    print 'failed command: "%s"' % gclient_cmd
    sys.exit(1)

  with open('.gclient') as gclient_file:
    content = gclient_file.read()

  with open('.gclient', 'w') as gclient_file:
    gclient_file.write(content.replace('change2dot', '.'))

  print 'created .gclient'

if __name__ == '__main__':
  main()
