[CalendarServer-changes] [9037] CalendarServer/trunk/calendarserver/tools/shell/cmd.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Apr 11 17:05:58 PDT 2012


Revision: 9037
          http://trac.macosforge.org/projects/calendarserver/changeset/9037
Author:   wsanchez at apple.com
Date:     2012-04-11 17:05:58 -0700 (Wed, 11 Apr 2012)
Log Message:
-----------
Add print_principal

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

Modified: CalendarServer/trunk/calendarserver/tools/shell/cmd.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell/cmd.py	2012-04-11 23:57:27 UTC (rev 9036)
+++ CalendarServer/trunk/calendarserver/tools/shell/cmd.py	2012-04-12 00:05:58 UTC (rev 9037)
@@ -35,7 +35,7 @@
 
 from calendarserver.tools.tables import Table
 from calendarserver.tools.shell.vfs import Folder, RootFolder
-from calendarserver.tools.shell.directory import findRecords, summarizeRecords
+from calendarserver.tools.shell.directory import findRecords, summarizeRecords, recordInfo
 
 
 class UsageError(Exception):
@@ -362,11 +362,11 @@
 
         usage: cd [folder]
         """
-        if not tokens:
+        if tokens:
+            dirname = tokens.pop(0)
+        else:
             return
 
-        dirname = tokens.pop(0)
-
         if tokens:
             raise UnknownArguments(tokens)
 
@@ -464,16 +464,45 @@
         if not tokens:
             raise UsageError("No search term")
 
-        records = (yield findRecords(self.protocol.service.directory, tokens))
+        directory = self.protocol.service.directory
 
+        records = (yield findRecords(directory, tokens))
+
         if records:
-            self.terminal.write((yield summarizeRecords(self.protocol.service.directory, records)))
+            self.terminal.write((yield summarizeRecords(directory, records)))
         else:
             self.terminal.write("No matching principals found.")
 
         self.terminal.nextLine()
 
 
+    @inlineCallbacks
+    def cmd_print_principal(self, tokens):
+        """
+        Print information about a principal
+
+        usage: print_principal uid
+        """
+        if tokens:
+            uid = tokens.pop(0)
+        else:
+            raise UsageError("UID required")
+
+        if tokens:
+            raise UnknownArguments(tokens)
+
+        directory = self.protocol.service.directory
+
+        record = directory.recordWithUID(uid)
+
+        if record:
+            self.terminal.write((yield recordInfo(directory, record)))
+        else:
+            self.terminal.write("No such principal.")
+
+        self.terminal.nextLine()
+
+
     #
     # Python prompt, for the win
     #
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120411/ddb248d1/attachment-0001.html>


More information about the calendarserver-changes mailing list