�Ww � @ s� d d l Z d d l Z d d l m Z d d l m Z d d l m Z m Z d Z e j d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d S)� N� )�echo)�split_arg_string)�MultiCommand�Optionz� %(complete_func)s() { COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \ COMP_CWORD=$COMP_CWORD \ %(autocomplete_var)s=complete $1 ) ) return 0 } complete -F %(complete_func)s -o default %(script_names)s z [^a-zA-Z0-9_]c C sF t j d | j d d � � } t d d | d | d | i j � d S) N� �-�_Z complete_funcz_%s_completionZscript_namesZautocomplete_var�;)�_invalid_ident_char_re�sub�replace�COMPLETION_SCRIPT�strip)� prog_name�complete_varZcf_name� r �/_bashcomplete.py�get_completion_script s r c C s� | j | | d d �} x� | j | j r� t | j t � r� | j | j } | j j | | d � } | d k rv d S| j | d | d d � d | d d �} q W| S)NZresilient_parsingTr r �parent)Zmake_context�argsZprotected_args� isinstance�commandr Zget_command)�clir r �ctx�a�cmdr r r �resolve_ctx s %0r c c s� t | | | � } | d k r"