On Fri, Sep 28, 2012 at 05:07:53PM +0200, Benoît Burnichon wrote:
> using this bash_completion allows using p <Tab> to complete commands
> even if ptxdist is installed on the system
> 
> Signed-off-by: Benoît Burnichon <[email protected]>
> ---
>  scripts/bash_completion |   15 +++++++++++----
>  1 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/bash_completion b/scripts/bash_completion
> index 3d4bc38..57d80a7 100644
> --- a/scripts/bash_completion
> +++ b/scripts/bash_completion
> @@ -8,7 +8,13 @@ if have ptxdist; then
>  
>  _ptxdist_completion()
>  {
> -     local cur cmds opts
> +     local cur cmds opts _ptxdist_cmd
> +
> +     if [ -h './p' ]; then
> +             _ptxdist_cmd=$(readlink ./p)
> +     else
> +             _ptxdist_cmd=ptxdist
> +     fi

        if [ "${COMP_WORDS[0]}" = "ptxdist ]; then
                _ptxdist_cmd=ptxdist
        else
                _ptxdist_cmd="$(readlink "${COMP_WORDS[0]}")"
        fi

I think. This way we're not limited to ./p
Or maybe just '_ptxdist_cmd="${COMP_WORDS[0]}"'. I'm not sure if there is
actually a case when the readlink is needed.

>  
>       COMPREPLY=()
>       cur=( $(_get_cword) )
> @@ -41,13 +47,13 @@ _ptxdist_completion()
>               [ $COMP_CWORD -lt 3 ] && _filedir
>               ;;
>       get|extract|prepare|compile|install|targetinstall|tags)
> -             COMPREPLY=( $( compgen -W "${opts} $( ptxdist print 
> PTX_PACKAGES_SELECTED )" -- $cur ) )
> +             COMPREPLY=( $( compgen -W "${opts} $( $_ptxdist_cmd print 
> PTX_PACKAGES_SELECTED )" -- $cur ) )
>               ;;
>       clean)
> -             COMPREPLY=( $( compgen -W "${opts} $( ptxdist print 
> PTX_PACKAGES_SELECTED ) root" -- $cur ) )
> +             COMPREPLY=( $( compgen -W "${opts} $( $_ptxdist_cmd print 
> PTX_PACKAGES_SELECTED ) root" -- $cur ) )
>               ;;
>       drop)
> -             COMPREPLY=( $( compgen -W "${opts} $( pushd $(ptxdist print 
> PTXDIST_PLATFORMDIR)/state >/dev/null; ls 
> +(*.get|*.extract|*.prepare|*.compile|*.install|*.targetinstall); popd 
> >/dev/null )" -- $cur ) )
> +             COMPREPLY=( $( compgen -W "${opts} $( pushd $($_ptxdist_cmd 
> print PTXDIST_PLATFORMDIR)/state >/dev/null; ls 
> +(*.get|*.extract|*.prepare|*.compile|*.install|*.targetinstall); popd 
> >/dev/null )" -- $cur ) )
>               ;;
>       newpackage)
>               COMPREPLY=( $( compgen -W "${opts} target host cross klibc 
> src-autoconf-lib src-autoconf-prog src-autoconf-proglib src-cmake-prog 
> src-qmake-prog src-make-prog src-linux-driver src-stellaris font simple 
> kernel image-tgz image-genimage" -- $cur) )
> @@ -57,6 +63,7 @@ _ptxdist_completion()
>  }
>  
>  complete -F _ptxdist_completion ptxdist
> +complete -F _ptxdist_completion p

I'm not sure if this last change is a good idea by default. 'p' is rather
ambiguous. But if we merge the rest, then it's easy to add just this line
to ~/.bash_completion

michael

>  
>  fi
>  
> -- 
> 1.7.2.5
> 
> 
> -- 
> ptxdist mailing list
> [email protected]

-- 
ptxdist mailing list
[email protected]

Reply via email to