[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