in nubia_complete/shell.py [0:0]
def generate_shell_setup(command_name, command_model):
clean_command_name = regex.sub("_", command_name)
func_name = "_nubia_completer_{}".format(clean_command_name)
template = """
if [[ -n ${{ZSH_VERSION-}} ]]; then
# zsh setup
_zsh_{func_name}() {{
local nubia_completer=${{NUBIA_COMPLETER_BINARY:-"{completer}"}}
local log_level=${{NUBIA_COMPLETER_LOG_LEVEL:-"INFO"}}
local log_file=${{NUBIA_COMPLETER_LOG_FILE:-"/dev/null"}}
local word completions
local IFS=$'\\n'
read -l;
local cl="$REPLY";
read -ln;
local cp="$REPLY";
reply=(`COMP_SHELL="zsh" \\
COMP_LINE="$cl" \\
COMP_POINT="$cp" \\
$nubia_completer --loglevel ${{log_level}} complete \\
--command-model-path="{model}" \\
2>> "$log_file"`)
}}
compctl -Q -S '' -K _zsh_{func_name} "{command}"
else
# bash setup
_bash_{func_name}() {{
local nubia_completer=${{NUBIA_COMPLETER_BINARY:-"{completer}"}}
local log_level=${{NUBIA_COMPLETER_LOG_LEVEL:-"INFO"}}
local log_file=${{NUBIA_COMPLETER_LOG_FILE:-"/dev/null"}}
COMPREPLY=()
local word="$2"
local IFS=$'\\n'
local completions="$(COMP_LINE="$COMP_LINE" \\
COMP_WORDS="${{COMP_WORDS[1]}}" \\
COMP_POINT="$COMP_POINT" \\
COMP_TYPE="$COMP_TYPE" \\
COMP_WORDBREAKS="$COMP_WORDBREAKS" \\
$nubia_completer --loglevel "${{log_level}}" complete \\
--command-model-path="{model}" \\
2>> "$log_file")"
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
return 0
}}
complete -o nospace -F _bash_{func_name} "{command}"
fi
"""
print(
template.format(
func_name=func_name,
command=command_name,
completer=sys.argv[0],
model=command_model,
)
)