[CalendarServer-changes] [9047] CalendarServer/trunk/calendarserver/tools/shell

source_changes at macosforge.org source_changes at macosforge.org
Thu Apr 12 17:02:21 PDT 2012


Revision: 9047
          http://trac.macosforge.org/projects/calendarserver/changeset/9047
Author:   wsanchez at apple.com
Date:     2012-04-12 17:02:21 -0700 (Thu, 12 Apr 2012)
Log Message:
-----------
Use ListEntry class.

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/tools/shell/cmd.py
    CalendarServer/trunk/calendarserver/tools/shell/vfs.py

Modified: CalendarServer/trunk/calendarserver/tools/shell/cmd.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell/cmd.py	2012-04-12 23:49:04 UTC (rev 9046)
+++ CalendarServer/trunk/calendarserver/tools/shell/cmd.py	2012-04-13 00:02:21 UTC (rev 9047)
@@ -144,9 +144,9 @@
             filter = lambda item: True
 
         files = (
-            self.listEntryToString(item)
-            for item in (yield self.wd.list())
-            if filter(item)
+            entry.toString()
+            for entry in (yield self.wd.list())
+            if filter(entry)
         )
 
         if len(tokens) == 0:
@@ -156,21 +156,7 @@
         else:
             returnValue(())
 
-    @staticmethod
-    def listEntryToString(entry):
-        """
-        Converts an entry returned by File.list() into a
-        user-displayable string.
-        """
-        klass = entry[0]
-        name  = entry[1]
 
-        if issubclass(klass, Folder):
-            return "%s/" % (name,)
-        else:
-            return name
-
-
 class Commands(CommandsBase):
     """
     Data store commands.
@@ -398,14 +384,14 @@
         multiple = len(targets) > 0
 
         for target in targets:
-            rows = (yield target.list())
+            entries = (yield target.list())
             #
             # FIXME: this can be ugly if, for example, there are zillions
             # of entries to output. Paging would be good.
             #
             table = Table()
-            for row in rows:
-                table.addRow((self.listEntryToString(row),) + tuple(row[2:]))
+            for entry in entries:
+                table.addRow(entry.toFields())
 
             if multiple:
                 self.terminal.write("%s:\n" % (target,))

Modified: CalendarServer/trunk/calendarserver/tools/shell/vfs.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell/vfs.py	2012-04-12 23:49:04 UTC (rev 9046)
+++ CalendarServer/trunk/calendarserver/tools/shell/vfs.py	2012-04-13 00:02:21 UTC (rev 9047)
@@ -65,8 +65,11 @@
     def __str__(self):
         return self.toString()
 
+    def isFolder(self):
+        return issubclass(self.fileClass, Folder)
+
     def toString(self):
-        if issubclass(self.fileClass, Folder):
+        if self.isFolder():
             return "%s/" % (self.fileName,)
         else:
             return self.fileName
@@ -85,7 +88,7 @@
         return self._fieldNames
 
     def toFields(self):
-        return (self.fields[fieldName] for fieldName in self.fieldNames)
+        return tuple(self.fields[fieldName] for fieldName in self.fieldNames)
 
 
 class File(object):
@@ -114,7 +117,9 @@
         return succeed("%s (%s)" % (self, self.__class__.__name__))
 
     def list(self):
-        return succeed((File, str(self)))
+        return succeed((
+            ListEntry(self.__class__, self.path[-1]),
+        ))
 
 
 class Folder(File):
@@ -177,9 +182,9 @@
     def list(self):
         result = set()
         for name in self._children:
-            result.add((self._children[name].__class__, name))
+            result.add(ListEntry(self._children[name].__class__, name))
         for name in self._childClasses:
-            result.add((self._childClasses[name], name))
+            result.add(ListEntry(self._childClasses[name], name))
         return succeed(result)
 
 
@@ -233,7 +238,7 @@
         # FIXME: Add directory info (eg. name) to listing
 
         for txn, home in (yield self.service.store.eachCalendarHome()):
-            result.add((PrincipalHomeFolder, home.uid()))
+            result.add(ListEntry(PrincipalHomeFolder, home.uid()))
 
         returnValue(result)
 
@@ -421,7 +426,7 @@
     @inlineCallbacks
     def list(self):
         calendars = (yield self.home.calendars())
-        returnValue(((CalendarFolder, c.name()) for c in calendars))
+        returnValue((ListEntry(CalendarFolder, c.name()) for c in calendars))
 
     @inlineCallbacks
     def describe(self):
@@ -562,8 +567,13 @@
     @inlineCallbacks
     def list(self):
         (yield self.lookup())
-        returnValue(((CalendarObject, self.uid, self.componentType, self.summary.replace("\n", " ")),))
+        returnValue((ListEntry(CalendarObject, self.uid, {
+            "Component Type": self.componentType,
+            "Summary": self.summary.replace("\n", " "),
+        }),))
 
+    list.fieldNames = ("Component Type", "Summary")
+
     @inlineCallbacks
     def text(self):
         (yield self.lookup())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120412/fe38b161/attachment.html>


More information about the calendarserver-changes mailing list