├── README.md └── symfony2-autocomplete.bash /README.md: -------------------------------------------------------------------------------- 1 | ## Deprecated 2 | 3 | This project has been deprecated for **[bamarni/symfony-console-autocomplete](https://github.com/bamarni/symfony-console-autocomplete)**. 4 | -------------------------------------------------------------------------------- /symfony2-autocomplete.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # bash completion support for symfony2 console 4 | # 5 | # Copyright (C) 2011 Matthieu Bontemps 6 | # Distributed under the GNU General Public License, version 2.0. 7 | 8 | _console() 9 | { 10 | local cur prev script 11 | COMPREPLY=() 12 | cur="${COMP_WORDS[COMP_CWORD]}" 13 | prev="${COMP_WORDS[COMP_CWORD-1]}" 14 | script="${COMP_WORDS[0]}" 15 | 16 | if [[ ${cur} == -* ]] ; then 17 | PHP=$(cat <<'HEREDOC' 18 | array_shift($argv); 19 | $script = array_shift($argv); 20 | $command = ''; 21 | foreach ($argv as $v) { 22 | if (0 !== strpos($v, '-')) { 23 | $command = $v; 24 | break; 25 | } 26 | } 27 | 28 | $xmlHelp = shell_exec($script.' help --format=xml '.$command.' 2>/dev/null'); 29 | $options = array(); 30 | if (!$xml = @simplexml_load_string($xmlHelp)) { 31 | exit(0); 32 | } 33 | foreach ($xml->xpath('/command/options/option') as $option) { 34 | $options[] = (string) $option['name']; 35 | } 36 | 37 | echo implode(' ', $options); 38 | HEREDOC 39 | ) 40 | 41 | args=$(printf "%s " "${COMP_WORDS[@]}") 42 | options=$($(which php) -r "$PHP" ${args}); 43 | COMPREPLY=($(compgen -W "${options}" -- ${cur})) 44 | 45 | return 0 46 | fi 47 | 48 | commands=$(${script} list --raw 2>/dev/null | sed -E 's/(([^ ]+ )).*/\1/') 49 | COMPREPLY=($(compgen -W "${commands}" -- ${cur})) 50 | 51 | return 0; 52 | } 53 | 54 | complete -F _console console 55 | complete -F _console console-dev 56 | complete -F _console console-test 57 | complete -F _console console-prod 58 | complete -F _console console-staging 59 | complete -F _console Symfony 60 | complete -F _console sf 61 | complete -F _console console.php 62 | complete -F _console composer 63 | COMP_WORDBREAKS=${COMP_WORDBREAKS//:} 64 | --------------------------------------------------------------------------------