1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 06:42:41 +01:00

bash completion: work around PHP CLI readline in command substitution

Summary: (At least my build of) PHP tries to do readline magic on the terminal
when invoked from the shell, even inside bash's command substitution operator.
Work around it by piping the output of ##echo## to ##php##, so the input isn't a
terminal.

Test Plan: ##bash$ arc li<TAB>## now gives me possible completions rather than
breaking and inserting a literal tab

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, epriestley

Differential Revision: 1096
This commit is contained in:
Chris Piro 2011-11-09 16:37:32 -08:00
parent 8a7e0b7783
commit 2a78b2bffa

View file

@ -1,24 +1,22 @@
_arc() _arc ()
{ {
CUR="${COMP_WORDS[COMP_CWORD]}" CUR="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=() COMPREPLY=()
OPTS=$(arc shell-complete --current ${COMP_CWORD} -- ${COMP_WORDS[@]}) OPTS=$(echo | arc shell-complete --current ${COMP_CWORD} -- ${COMP_WORDS[@]})
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
return $? return $?
fi fi
if [ "$OPTS" = "FILE" ]; then if [ "$OPTS" = "FILE" ]; then
COMPREPLY=( $(compgen -f -- ${CUR}) ) COMPREPLY=( $(compgen -f -- ${CUR}) )
return 0 return 0
fi fi
if [ "$OPTS" = "ARGUMENT" ]; then if [ "$OPTS" = "ARGUMENT" ]; then
return 0 return 0
fi fi
COMPREPLY=( $(compgen -W "${OPTS}" -- ${CUR}) )
COMPREPLY=( $(compgen -W "${OPTS}" -- ${CUR}) )
} }
complete -F _arc -o filenames arc complete -F _arc -o filenames arc