diff --git a/gclient b/gclient index 34478dc29..19cc68dae 100755 --- a/gclient +++ b/gclient @@ -3,68 +3,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# This script will try to sync the bootstrap directories and then defer control. - base_dir=$(dirname "$0") -# Test git and git --version. -function test_git { - local GITV="$(git --version)" || { - echo "git isn't installed, please install it" - exit 1 - } - - GITV="${GITV##* }" # Only examine last word (i.e. version number) - local GITD=( ${GITV//./ } ) # Split version number into decimals - if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then - echo "git version is ${GITV}, please update to a version later than 1.6" - exit 1 - fi -} - -# Test git svn and git svn --version. -function test_git_svn { - local GITV="$(git svn --version)" || { - echo "git-svn isn't installed, please install it" - exit 1 - } - - GITV="${GITV#* version }" # git svn --version has extra output to remove. - GITV="${GITV% (svn*}" - local GITD=( ${GITV//./ } ) # Split version number into decimals - if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then - echo "git version is ${GITV}, please update to a version later than 1.6" - exit 1 - fi -} - - -# Update git checkouts prior the cygwin check, we don't want to use msysgit. -if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/.git" ] -then - cd $base_dir - test_git_svn - # work around a git-svn --quiet bug - OUTPUT=`git svn rebase -q -q` - if [[ ! "$OUTPUT" =~ Current.branch ]]; then - echo $OUTPUT - fi - cd - > /dev/null -fi - -# Use the batch file as an entry point if on cygwin. -if [ "${OSTYPE}" = "cygwin" -a "${TERM}" != "xterm" ]; then - ${base_dir}/gclient.bat "$@" - exit -fi - - -# We're on POSIX (not cygwin). We can now safely look for svn checkout. -if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/.svn" ] -then - # Update the bootstrap directory to stay up-to-date with the latest - # depot_tools. - svn -q up "$base_dir" -fi +"$base_dir"/update_depot_tools exec python "$base_dir/gclient.py" "$@" diff --git a/git-cl b/git-cl index 48cc4cdf2..5730c3ab8 100755 --- a/git-cl +++ b/git-cl @@ -8,6 +8,8 @@ repo="$base_dir/git_cl_repo" url="http://git.chromium.org/git/git-cl.git" cur_url=$(git config -f "$repo/.git/config" remote.origin.url) +"$base_dir"/update_depot_tools + if [ -e "$repo" -a "$cur_url" != "$url" ]; then # Always override "origin" (cd "$repo"; git remote set-url origin $url) diff --git a/update_depot_tools b/update_depot_tools new file mode 100755 index 000000000..4f896465a --- /dev/null +++ b/update_depot_tools @@ -0,0 +1,68 @@ +#!/bin/bash +# Copyright (c) 2010 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. + +# This script will try to sync the bootstrap directories and then defer control. + +base_dir=$(dirname "$0") + +# Test git and git --version. +function test_git { + local GITV="$(git --version)" || { + echo "git isn't installed, please install it" + exit 1 + } + + GITV="${GITV##* }" # Only examine last word (i.e. version number) + local GITD=( ${GITV//./ } ) # Split version number into decimals + if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then + echo "git version is ${GITV}, please update to a version later than 1.6" + exit 1 + fi +} + +# Test git svn and git svn --version. +function test_git_svn { + local GITV="$(git svn --version)" || { + echo "git-svn isn't installed, please install it" + exit 1 + } + + GITV="${GITV#* version }" # git svn --version has extra output to remove. + GITV="${GITV% (svn*}" + local GITD=( ${GITV//./ } ) # Split version number into decimals + if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then + echo "git version is ${GITV}, please update to a version later than 1.6" + exit 1 + fi +} + + +# Update git checkouts prior the cygwin check, we don't want to use msysgit. +if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/.git" ] +then + cd $base_dir + test_git_svn + # work around a git-svn --quiet bug + OUTPUT=`git svn rebase -q -q` + if [[ ! "$OUTPUT" =~ Current.branch ]]; then + echo $OUTPUT + fi + cd - > /dev/null +fi + +# Use the batch file as an entry point if on cygwin. +if [ "${OSTYPE}" = "cygwin" -a "${TERM}" != "xterm" ]; then + ${base_dir}/gclient.bat "$@" + exit +fi + + +# We're on POSIX (not cygwin). We can now safely look for svn checkout. +if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/.svn" ] +then + # Update the bootstrap directory to stay up-to-date with the latest + # depot_tools. + svn -q up "$base_dir" +fi