[eit.commands.lock] implement bash completion

This commit is contained in:
Fabio Erculiani
2011-10-29 11:28:11 +02:00
parent bf8c2b8d7d
commit 9b0333f757

View File

@@ -62,6 +62,39 @@ class EitLock(EitCommand):
return parser
def bashcomp(self, last_arg):
"""
Overridden from EitCommand
"""
import sys
entropy_server = self._entropy(handle_uninitialized=False,
installed_repo=-1)
outcome = entropy_server.repositories()
for arg in self._args:
if arg in outcome:
# already given a repo
return
outcome += ["--client", "--status"]
def _startswith(string):
if last_arg is not None:
if last_arg not in outcome:
return string.startswith(last_arg)
return True
if self._args:
# only filter out if last_arg is actually
# something after this.NAME.
outcome = sorted(filter(_startswith, outcome))
for arg in self._args:
if arg in outcome:
outcome.remove(arg)
sys.stdout.write(" ".join(outcome) + "\n")
sys.stdout.flush()
def parse(self):
parser = self._get_parser()
try: