zsh-users
 help / color / mirror / code / Atom feed
* no tab completion with equo
@ 2014-09-15 18:13 Clemens Schüller
  2014-09-16 13:01 ` Vadim A. Misbakh-Soloviov
  0 siblings, 1 reply; 7+ messages in thread
From: Clemens Schüller @ 2014-09-15 18:13 UTC (permalink / raw)
  To: zsh users

Hello!


equo is the frontend to the package manager of sabayon linux:

In the equo package is a tab completion file for the zsh. But zsh won't
work with the completion.

--8<---------------cut here---------------start------------->8---
[mente@cougar: ~]% equo [TAB]
No matches for: `command' or `equo command'
--8<---------------cut here---------------end--------------->8---


--8<---------------cut here---------------start------------->8---
[mente@cougar: ~]% dir /usr/share/zsh/site-functions/_equo 
-rw-r--r-- 1 root root 2636 29. Jun 16:35 /usr/share/zsh/site-functions/_equo
--8<---------------cut here---------------start------------->8---


--8<---------------cut here---------------start------------->8---
[mente@cougar: ~]% cat /usr/share/zsh/site-functions/_equo
#compdef equo

local curcontext="$curcontext" state line cmds packages mirrors
typeset -A opt_args


_equo_get_mirrors()
{
  mirrors=( ${(f)"$(equo status | grep Repository\ name | cut -d: -f2 | sed 's/^\ *//')"} )
  _describe -t packages 'mirrors' mirrors
}

_equo_get_cmds()
{
  cmds=( ${(f)"$(equo $1 --help | tr "\t" ":" | grep "^:[^:]" | sed 's/^:\([^:\ ]*\)[^:]*:*/\1:/')"} )
  _describe -t commands 'command params' cmds
}

_equo_get_installed_packages()
{
  packages=( ${(f)"$(equo query list installed | equo query list installed | sed 's/.*\///')"}  )
  _describe -t packages 'installed packages' packages
}

_equo_get_available_packages()
{
  packages=( ${(f)"$(equo search $1 | grep Package |sed 's/.*\/\([^\ ]*\).*/\1/')"}  )
  _describe -t packages 'available packages' packages
}

_arguments -C \
  "--help[print help]" \
  "--version[print version]" \
  "--nocolor[dont use colors]" \
  "--color[use colors(default)]" \
  "--bashcomp[print bash completion script]"\
  '1:command:->cmds' \
  '*:subcommand:->args'

case $state in
  cmds)
    cmds=( ${(f)"$(equo --help |tr "\t" ":" | grep "^:[^:-]" | sed 's/^:\(\w*\).*:\+/\1:/')"} )
    _describe -t commands 'equo command' cmds
  ;;
  args)
    case $line[1] in
      remove|config)
        _equo_get_cmds $line[1] && return 0
        _equo_get_installed_packages
      ;;
      install|fetch|search|source|mask|unmask)
        _equo_get_cmds $line[1] && return 0
        _equo_get_available_packages $line[-1]
      ;;
      repo)
        case $line[2] in
          enable|disable|remove|mirrorsort)
            _equo_get_mirrors
          ;;
          add|merge)
          ;;
          *)
            _equo_get_cmds $line[1] 
          ;;
        esac
      ;;
      query)
        case $line[2] in
          changelog|revdeps|files|needed|removal|graph|revgraph)
            _equo_get_installed_packages
          ;;
          list)
            case $line[3] in
              available)
                _equo_get_mirrors
              ;;
              installed)
              ;;
              *)
                cmds=( ${(f)"$(equo query list --help |tr "\t" ":" | grep "^::[^:]" | sed 's/^::\([^:\ ]*\)[^:]*:*/\1:/')"} )
                _describe -t commands 'command params' cmds
              ;;
            esac
          ;;
          belongs|description|license|mimetype|asociate|orphans|required|sets|slots|tags)
          ;;
          *)
            _equo_get_cmds $line[1]
          ;;
        esac
      ;;
      notice)
        _equo_get_mirrors
      ;;
      cleanup|status)
      ;;
      *)
        _equo_get_cmds $line[1]
      ;;
    esac
  ;;
esac
--8<---------------cut here---------------start------------->8---


Can anyone help me. Thanks :-)

-- 
Best Regards, Clemens Schüller


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-10-09  2:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-15 18:13 no tab completion with equo Clemens Schüller
2014-09-16 13:01 ` Vadim A. Misbakh-Soloviov
2014-09-16 16:22   ` Clemens Schüller
2014-09-17  0:28     ` Bart Schaefer
2014-10-09  2:40       ` Clemens Schüller
2014-09-17  6:27     ` Vadim A. Misbakh-Soloviov
2014-10-09  2:43       ` Clemens Schüller

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).