# 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 exec_util import exec_cmd
import os

def is_checkout(path):
  """ Returns true if the path represents a git checkout. """
  return os.path.exists(os.path.join(path, '.git'))

def get_hash(path = '.', branch = 'master'):
  """ Returns the git hash for the specified branch/tag/hash. """
  cmd = "git rev-parse %s" % (branch)
  result = exec_cmd(cmd, path)
  if result['out'] != '':
    return result['out'].strip()
  return 'Unknown'

def get_url(path = '.'):
  """ Returns the origin url for the specified path. """
  cmd = "git config --get remote.origin.url"
  result = exec_cmd(cmd, path)
  if result['out'] != '':
    return result['out'].strip()
  return 'Unknown'

def get_svn_revision(path = '.', branch = 'master'):
  """ Returns the SVN revision associated with the specified path and git
      branch/tag/hash. """
  svn_rev = "None"
  cmd = "git log --grep=^git-svn-id: -n 1 %s" % (branch)
  result = exec_cmd(cmd, path)
  if result['err'] == '':
    for line in result['out'].split('\n'):
      if line.find("git-svn-id") > 0:
        svn_rev = line.split("@")[1].split()[0]
        break
  return svn_rev

def get_changed_files(path = '.'):
  """ Retrieves the list of changed files. """
  # not implemented
  return []