Generalize python_git_runner for use in non-git scripts.
Retrying the change in https://codereview.chromium.org/1415993003/, with fixes to properly handle being called with either Windows- or POSIX-style paths (the previous attempt assumed it was always called with POSIX-style paths under MSYS, which itself was attempting to fix the assumption that it was always called with Windows-style paths, but neither assumption was right). This change doesn't actually use the wrapper in any new places, but subsequent changes will be made to use it in places where 'exec python' is called directly, like gclient and fetch. BUG=411518 R=iannucci@google.com, sky@google.com Review URL: https://codereview.chromium.org/1411793006 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@297401 0039d316-1c4b-4281-b951-d872f2087c98changes/01/332501/1
parent
50289c267b
commit
375765c6bf
@ -1,36 +0,0 @@
|
||||
# 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
|
@ -0,0 +1,50 @@
|
||||
# Copyright 2015 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 'command-name'. This script will then instead invoke
|
||||
## '[depot_tools]/command_name.py' correctly under mingw as well
|
||||
## as posix-ey systems, passing along all other command line flags.
|
||||
|
||||
## Example:
|
||||
## echo ". python_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
|
||||
|
||||
# "$0" can have several different formats depending on how the script was called
|
||||
# and the environment being used, including having different formats even in the
|
||||
# same environment (e.g. in msys, 'git cl' causes $0 to have a Windows-style
|
||||
# path, but calling 'git-cl' results in a POSIX-style path), so don't assume a
|
||||
# particular format.
|
||||
# First try to split it using Windows format ...
|
||||
DEPOT_TOOLS="${0%\\*}"
|
||||
if [[ "$DEPOT_TOOLS" = "$0" ]]; then
|
||||
# If that didn't work, try POSIX format ...
|
||||
DEPOT_TOOLS="${0%/*}"
|
||||
if [[ "$DEPOT_TOOLS" = "$0" ]]; then
|
||||
# Sometimes commands will run with no path (e.g. a git command run from
|
||||
# within the depot_tools dir itself). In that case, treat it as if run like:
|
||||
# "./command"
|
||||
DEPOT_TOOLS="."
|
||||
BASENAME="$0"
|
||||
else
|
||||
BASENAME="${0##*/}"
|
||||
fi
|
||||
else
|
||||
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
|
Loading…
Reference in New Issue