Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | _vagrant() |
| 3 | { |
Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 4 | cur="${COMP_WORDS[COMP_CWORD]}" |
| 5 | prev="${COMP_WORDS[COMP_CWORD-1]}" |
Fedyashev Nikita | 7f721fe | 2010-11-19 00:27:14 -0500 | [diff] [blame] | 6 | commands="box destroy halt help init package provision reload resume ssh ssh_config status suspend up version" |
Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 7 | |
Fedyashev Nikita | 5f6125e | 2010-11-19 00:22:13 -0500 | [diff] [blame] | 8 | if [ $COMP_CWORD == 1 ] |
| 9 | then |
Fedyashev Nikita | 5f6125e | 2010-11-19 00:22:13 -0500 | [diff] [blame] | 10 | COMPREPLY=($(compgen -W "${commands}" -- ${cur})) |
| 11 | return 0 |
| 12 | fi |
Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 13 | |
Fedyashev Nikita | 5f6125e | 2010-11-19 00:22:13 -0500 | [diff] [blame] | 14 | if [ $COMP_CWORD == 2 ] |
| 15 | then |
Fedyashev Nikita | 7f721fe | 2010-11-19 00:27:14 -0500 | [diff] [blame] | 16 | case "$prev" in |
| 17 | "box") |
| 18 | box_commands="add help list remove repackage" |
| 19 | COMPREPLY=($(compgen -W "${box_commands}" -- ${cur})) |
| 20 | return 0 |
| 21 | ;; |
| 22 | "help") |
| 23 | COMPREPLY=($(compgen -W "${commands}" -- ${cur})) |
| 24 | return 0 |
| 25 | ;; |
| 26 | *) |
| 27 | ;; |
| 28 | esac |
Fedyashev Nikita | 5f6125e | 2010-11-19 00:22:13 -0500 | [diff] [blame] | 29 | fi |
| 30 | |
| 31 | if [ $COMP_CWORD == 3 ] |
| 32 | then |
| 33 | action="${COMP_WORDS[COMP_CWORD-2]}" |
| 34 | if [ $action == 'box' ] |
| 35 | then |
| 36 | case "$prev" in |
| 37 | "remove"|"repackage") |
Fedyashev Nikita | 7f721fe | 2010-11-19 00:27:14 -0500 | [diff] [blame] | 38 | local box_list=$(find $HOME/.vagrant/boxes/* -maxdepth 0 -type d -printf '%f ') |
| 39 | COMPREPLY=($(compgen -W "${box_list}" -- ${cur})) |
Fedyashev Nikita | 5f6125e | 2010-11-19 00:22:13 -0500 | [diff] [blame] | 40 | return 0 |
| 41 | ;; |
| 42 | *) |
| 43 | ;; |
| 44 | esac |
| 45 | fi |
| 46 | fi |
| 47 | |
Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 48 | } |
| 49 | complete -F _vagrant vagrant |
Fedyashev Nikita | 4350c3f | 2010-11-18 23:42:30 -0500 | [diff] [blame] | 50 | |