diff --git a/git-cache b/git-cache index 14ffa60b9..586ad0220 100755 --- a/git-cache +++ b/git-cache @@ -1,26 +1,8 @@ -#!/bin/sh +#!/bin/bash # Copyright 2014 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. -# git-cache -- a git-command for managing local caches of remote repositories. +# git_cache.py - a git-command for managing local caches of remote repositories. -# Test if this script is running under a MSys install. If it is, we will -# hardcode the path to Python where possible. -OUTPUT="$(uname | grep 'MINGW')" -MINGW=$? - -if [ $MINGW = 0 ]; then - base_dir="${0%\\*}" -else - base_dir=$(dirname "$0") -fi - -# Uncomment this line if you never use gclient. -# "$base_dir"/update_depot_tools - -if [ -e "$base_dir/python.bat" -a $MINGW = 0 ]; then - PYTHONDONTWRITEBYTECODE=1 cmd.exe //c "$base_dir\\python.bat" "$base_dir\\git_cache.py" "$@" -else - PYTHONDONTWRITEBYTECODE=1 exec "$base_dir/git_cache.py" "$@" -fi +. $(type -P python_git_runner.sh) diff --git a/git-cl b/git-cl index 8032f9837..7b17d25be 100755 --- a/git-cl +++ b/git-cl @@ -1,27 +1,9 @@ -#!/bin/sh -# Copyright (c) 2012 The Chromium Authors. All rights reserved. +#!/bin/bash +# Copyright (c) 2014 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. -# git-cl -- a git-command for integrating reviews on Rietveld +# git_cl.py -- a git-command for integrating reviews on Rietveld # Copyright (C) 2008 Evan Martin -# Test if this script is running under a MSys install. If it is, we will -# hardcode the path to Python where possible. -OUTPUT="$(uname | grep 'MINGW')" -MINGW=$? - -if [ $MINGW = 0 ]; then - base_dir="${0%\\*}" -else - base_dir=$(dirname "$0") -fi - -# Uncomment this line if you never use gclient. -# "$base_dir"/update_depot_tools - -if [ -e "$base_dir/python.bat" -a $MINGW = 0 ]; then - PYTHONDONTWRITEBYTECODE=1 cmd.exe //c "$base_dir\\python.bat" "$base_dir\\git_cl.py" "$@" -else - PYTHONDONTWRITEBYTECODE=1 exec "$base_dir/git_cl.py" "$@" -fi +. $(type -P python_git_runner.sh) diff --git a/git-number b/git-number index 6c06f055d..c311df90f 100755 --- a/git-number +++ b/git-number @@ -1,27 +1,9 @@ -#!/bin/sh +#!/bin/bash # Copyright 2013 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. -# git-number -- a git-command for calculating and displaying the generation +# git_number.py - a git-command for calculating and displaying the generation # number of a commit. -# Test if this script is running under a MSys install. If it is, we will -# hardcode the path to Python where possible. -OUTPUT="$(uname | grep 'MINGW')" -MINGW=$? - -if [ $MINGW = 0 ]; then - base_dir="${0%\\*}" -else - base_dir=$(dirname "$0") -fi - -# Uncomment this line if you never use gclient. -# "$base_dir"/update_depot_tools - -if [ -e "$base_dir/python.bat" -a $MINGW = 0 ]; then - PYTHONDONTWRITEBYTECODE=1 cmd.exe //c "$base_dir\\python.bat" "$base_dir\\git_number.py" "$@" -else - PYTHONDONTWRITEBYTECODE=1 exec "$base_dir/git_number.py" "$@" -fi +. $(type -P python_git_runner.sh) diff --git a/git-try b/git-try index 8272eb70a..68140ed0c 100755 --- a/git-try +++ b/git-try @@ -1,21 +1,9 @@ -#!/bin/sh +#!/bin/bash # 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. -# Test if this script is running under a MSys install. If it is, we will -# hardcode the path to Python where possible. -OUTPUT="$(uname | grep 'MINGW')" -MINGW=$? +# git_try.py - Commits a patch to the SVN try patch repo. +# It is highly recommended to use `git cl try` instead. -if [ $MINGW = 0 ]; then - base_dir="${0%\\*}" -else - base_dir=$(dirname "$0") -fi - -if [ -e "$base_dir/python.bat" -a $MINGW = 0 ]; then - PYTHONDONTWRITEBYTECODE=1 cmd.exe //c "$base_dir\\python.bat" "$base_dir\\git_try.py" "$@" -else - PYTHONDONTWRITEBYTECODE=1 exec "$base_dir/git_try.py" "$@" -fi +. $(type -P python_git_runner.sh) diff --git a/python_git_runner.sh b/python_git_runner.sh new file mode 100755 index 000000000..2dbda0aad --- /dev/null +++ b/python_git_runner.sh @@ -0,0 +1,36 @@ +# Copyright 2014 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 file is designed to be sourced from a bash script whose name takes the +## form 'git-sub-command'. This script will then instead invoke +## '[depot_tools]/git_sub_command.py' correctly under mingw as well +## as posix-ey systems, passing along all other command line flags. + +## Example: +## echo ". python_git_runner.sh" > git-foo-command +## ./git-foo-command #=> runs `python git_foo_command.py` + +## Constants +PYTHONDONTWRITEBYTECODE=1 + +## "Input parameters". +# If set before the script is sourced, then we'll use the pre-set values. +# +# SCRIPT defaults to the basename of $0, with dashes replaced with underscores + +if [[ $OSTYPE = msys ]] +then + DEPOT_TOOLS="${0%\\*}" + BASENAME="${0##*\\}" +else + DEPOT_TOOLS="${0%/*}" + BASENAME="${0##*/}" +fi +SCRIPT="${SCRIPT-${BASENAME//-/_}.py}" + +if [[ -e "$DEPOT_TOOLS/python.bat" && $OSTYPE = msys ]]; then + cmd.exe //c "$DEPOT_TOOLS\\python.bat" "$DEPOT_TOOLS\\$SCRIPT" "$@" +else + exec "$DEPOT_TOOLS/$SCRIPT" "$@" +fi