38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Run something, muting output or redirecting it to the debug stream
|
|
# depending on the value of _ARC_DEBUG.
|
|
__python_argcomplete_run() {
|
|
if [[ -z "$_ARC_DEBUG" ]]; then
|
|
"$@" 8>&1 9>&2 1>/dev/null 2>&1
|
|
else
|
|
"$@" 8>&1 9>&2 1>&9 2>&1
|
|
fi
|
|
}
|
|
|
|
_python_argcomplete() {
|
|
if [[ "$COMP_WORDBREAKS" != *,* ]]; then
|
|
COMP_WORDBREAKS="${COMP_WORDBREAKS},"
|
|
fi
|
|
local IFS=$'\013'
|
|
local SUPPRESS_SPACE=0
|
|
if compopt +o nospace 2> /dev/null; then
|
|
SUPPRESS_SPACE=1
|
|
fi
|
|
COMP_WORDS[4]=""
|
|
COMPREPLY=( $(IFS="$IFS" \
|
|
COMP_LINE="$COMP_LINE" \
|
|
COMP_POINT="$COMP_POINT" \
|
|
COMP_TYPE="$COMP_TYPE" \
|
|
_ARGCOMPLETE_COMP_WORDBREAKS="\"'><;|&(:" \
|
|
_ARGCOMPLETE=1 \
|
|
_ARGCOMPLETE_SUPPRESS_SPACE=$SUPPRESS_SPACE \
|
|
__python_argcomplete_run "$1") )
|
|
if [[ $? != 0 ]]; then
|
|
unset COMPREPLY
|
|
elif [[ $SUPPRESS_SPACE == 1 ]] && [[ "$COMPREPLY" =~ [=/:]$ ]]; then
|
|
compopt -o nospace
|
|
fi
|
|
}
|
|
complete -o nospace -o default -F _python_argcomplete ::SCRIPTNAME::
|