OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # Flag completion rule for bash. | 5 # Flag completion rule for bash. |
6 # To load in your shell, "source path/to/this/file". | 6 # To load in your shell, "source path/to/this/file". |
7 | 7 |
8 chrome_source=$(cd $(dirname $BASH_SOURCE)/.. && pwd) | 8 chrome_source=$(cd $(dirname $BASH_SOURCE)/.. && pwd) |
9 | 9 |
10 _chrome_flag() { | 10 _chrome_flag() { |
11 local cur targets | 11 local cur targets |
12 cur="${COMP_WORDS[COMP_CWORD]}" | 12 cur="${COMP_WORDS[COMP_CWORD]}" |
13 targets=$(cd $chrome_source; \ | 13 targets=$(cd $chrome_source; \ |
14 git ls-files '*switches*' | \ | 14 git ls-files '*switches*' | \ |
15 xargs sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p') | 15 xargs sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p') |
16 COMPREPLY=($(compgen -W "$targets" -- "$cur")) | 16 COMPREPLY=($(compgen -W "$targets" -- "$cur")) |
17 return 0 | 17 return 0 |
18 } | 18 } |
19 | 19 |
| 20 _gtest_flag() { |
| 21 local cur gtest_flags launcher_flags |
| 22 cur="${COMP_WORDS[COMP_CWORD]}" |
| 23 gtest_flags=$(sed -ne 's/^.*FromGTestEnv("\([^" /]\+\)".*$/--gtest_\1/p' \ |
| 24 "$chrome_source/testing/gtest/src/gtest.cc") |
| 25 chrome_test_launcher_flags=$(sed -ne 's/^[^/]*"\([^" /]\{1,\}\)".*/--\1/p' \ |
| 26 "$chrome_source/base/test/test_switches.cc") |
| 27 COMPREPLY=($( |
| 28 compgen -W "$gtest_flags $chrome_test_launcher_flags" -- "$cur")) |
| 29 return 0 |
| 30 } |
| 31 |
20 complete -F _chrome_flag google-chrome | 32 complete -F _chrome_flag google-chrome |
21 complete -F _chrome_flag chrome | 33 complete -F _chrome_flag chrome |
22 if [ $(uname) = "Darwin" ] | 34 if [ $(uname) = "Darwin" ] |
23 then | 35 then |
24 complete -F _chrome_flag Chromium | 36 complete -F _chrome_flag Chromium |
25 fi | 37 fi |
| 38 |
| 39 for gtest_test_executable in $( |
| 40 cd $chrome_source; |
| 41 git ls-files '*/BUILD.gn' | xargs sed -ne 's/^test("\([^"]\+\)").*$/\1/p' |
| 42 ); do |
| 43 complete -F _gtest_flag $gtest_test_executable |
| 44 done |
OLD | NEW |