
The methodology used to generate this CL is documented in https://crbug.com/1098010#c95. No-Try: true No-Presubmit: true Bug: 1098010 Change-Id: I3a8a7b150e7bd64690534727150646081df50439 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3900697 Reviewed-by: Mark Mentovai <mark@chromium.org> Auto-Submit: Avi Drissman <avi@chromium.org> Owners-Override: Avi Drissman <avi@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1047644}
110 lines
3.5 KiB
Plaintext
110 lines
3.5 KiB
Plaintext
# Copyright 2012 The Chromium Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Flag completion rule for bash.
|
|
# To load in your shell, "source path/to/this/file".
|
|
|
|
# Usage examples
|
|
# ==============
|
|
#
|
|
# Browser command line switches:
|
|
# $ out/gn/chrome --site-per-pro<tab>
|
|
# $ google-chrome --site-per-pro<tab>
|
|
#
|
|
# Test switches (i.e. --gtest_* and --test-launcher-* switches):
|
|
# $ out/gn/unit_tests --gtest_filt<tab>
|
|
# $ out/gn/unit_tests --test-launcher-j<tab>
|
|
#
|
|
# Web test switches:
|
|
# $ third_party/blink/tools/run_web_tests.py --additional-driver-f<tab>
|
|
# $ .../run_web_tests.py --additional-driver-flag=--site-per-pro<tab>
|
|
#
|
|
# Blink blink_tool.py sub-commands:
|
|
# $ third_party/blink/tools/blink_tool.py reb<tab>
|
|
|
|
if [ -n "$BASH_SOURCE" ]; then
|
|
# The $BASH_SOURCE variable returns path of current script in bash.
|
|
chrome_source=$(cd $(dirname $BASH_SOURCE)/.. && pwd)
|
|
else
|
|
# This is here for other similar shells, e.g. zsh.
|
|
chrome_source=$(cd $(dirname $0)/.. && pwd)
|
|
fi
|
|
|
|
_chrome_flag() {
|
|
local cur targets
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
targets=$(cd $chrome_source; \
|
|
git ls-files '*switches*' | \
|
|
xargs sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p')
|
|
COMPREPLY=($(compgen -W "$targets" -- "$cur"))
|
|
return 0
|
|
}
|
|
|
|
_gtest_flag() {
|
|
local cur gtest_flags launcher_flags
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
gtest_flags=$(sed -ne 's/^.*FromGTestEnv("\([^" /]\+\)".*$/--gtest_\1/p' \
|
|
"$chrome_source/third_party/googletest/src/googletest/src/gtest.cc")
|
|
chrome_test_launcher_flags=$(sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p' \
|
|
"$chrome_source/base/test/test_switches.cc")
|
|
COMPREPLY=($(
|
|
compgen -W "$gtest_flags $chrome_test_launcher_flags" -- "$cur"))
|
|
return 0
|
|
}
|
|
|
|
_web_test_flag() {
|
|
local cur targets blinkpy_dir prev_switch
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
|
|
# Complete content_shell switches if appropriate.
|
|
if [ "${COMP_CWORD}" -gt 2 -a "${COMP_WORDS[COMP_CWORD-1]}" = "=" ]
|
|
then
|
|
prev_switch="${COMP_WORDS[COMP_CWORD-2]}"
|
|
if [ "$prev_switch" = "--additional-drt-flag" -o \
|
|
"$prev_switch" = "--additional-driver-flag" ]
|
|
then
|
|
targets=$(cd $chrome_source; \
|
|
git ls-files 'content/*switches*.cc' | \
|
|
xargs sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p')
|
|
COMPREPLY=($(compgen -W "$targets" -- "$cur"))
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
# Complete run_web_tests.py switches.
|
|
blinkpy_dir="$chrome_source/third_party/blink/tools/blinkpy"
|
|
targets=$(sed -ne 's/^[[:space:]]*"\(--[a-z-]\+\)",[[:space:]]*$/\1/p' \
|
|
"$blinkpy_dir/web_tests/run_webkit_tests.py")
|
|
COMPREPLY=($(compgen -W "$targets" -- "$cur"))
|
|
return 0
|
|
}
|
|
|
|
_blink_tool_flag() {
|
|
local cur targets blink_tools_dir
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
blink_tools_dir=$chrome_source/third_party/blink/tools
|
|
targets=$($blink_tools_dir/blink_tool.py help | grep '^ [a-z]' | \
|
|
awk '{ print $1 }')
|
|
COMPREPLY=($(compgen -W "$targets" -- "$cur"))
|
|
return 0
|
|
}
|
|
|
|
complete -F _chrome_flag google-chrome
|
|
complete -F _chrome_flag chrome
|
|
complete -F _chrome_flag content_shell
|
|
if [ $(uname) = "Darwin" ]
|
|
then
|
|
complete -F _chrome_flag Chromium
|
|
fi
|
|
|
|
for gtest_test_executable in $(
|
|
cd $chrome_source;
|
|
git ls-files '*/BUILD.gn' | xargs sed -ne 's/^.*test("\([^"]\+\)").*$/\1/p'
|
|
); do
|
|
complete -F _gtest_flag $gtest_test_executable
|
|
done
|
|
|
|
complete -F _web_test_flag run_web_tests.py
|
|
complete -F _blink_tool_flag blink_tool.py
|