[CalendarServer-changes] [8467] CalendarServer/trunk/calendarserver/tools/shell.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Dec 16 14:48:57 PST 2011
Revision: 8467
http://trac.macosforge.org/projects/calendarserver/changeset/8467
Author: wsanchez at apple.com
Date: 2011-12-16 14:48:56 -0800 (Fri, 16 Dec 2011)
Log Message:
-----------
Complete ls, info, cat
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/shell.py
Modified: CalendarServer/trunk/calendarserver/tools/shell.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell.py 2011-12-16 19:13:15 UTC (rev 8466)
+++ CalendarServer/trunk/calendarserver/tools/shell.py 2011-12-16 22:48:56 UTC (rev 8467)
@@ -367,6 +367,24 @@
def _complete_commands(self, word):
return self._complete(word, (name for name, method in self.commands()))
+ @inlineCallbacks
+ def _complete_files(self, tokens, filter=None):
+ if filter is None:
+ filter = lambda items: True
+
+ files = (
+ item[1]
+ for item in (yield self.wd.list())
+ if filter(item)
+ )
+
+ if len(tokens) == 0:
+ returnValue(files)
+ elif len(tokens) == 1:
+ returnValue(self._complete(tokens[0], files))
+ else:
+ returnValue(())
+
#
# Commands
#
@@ -520,19 +538,11 @@
@inlineCallbacks
def complete_cd(self, tokens):
- directories = (
- item[1]
- for item in (yield self.wd.list())
- if issubclass(item[0], Folder)
+ return self._complete_files(
+ tokens,
+ filter = lambda item: issubclass(item[0], Folder)
)
- if len(tokens) == 0:
- returnValue(directories)
- elif len(tokens) == 1:
- returnValue(self._complete(tokens[0], directories))
- else:
- returnValue(())
-
@inlineCallbacks
def cmd_ls(self, tokens):
"""
@@ -559,6 +569,8 @@
table.printTable(self.terminal)
self.terminal.nextLine()
+ complete_ls = _complete_files
+
@inlineCallbacks
def cmd_info(self, tokens):
"""
@@ -575,6 +587,8 @@
self.terminal.write(description)
self.terminal.nextLine()
+ complete_ls = _complete_files
+
@inlineCallbacks
def cmd_cat(self, tokens):
"""
@@ -587,6 +601,8 @@
text = (yield target.text())
self.terminal.write(text)
+ complete_ls = _complete_files
+
def cmd_exit(self, tokens):
"""
Exit the shell.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111216/83f97f3f/attachment.html>
More information about the calendarserver-changes
mailing list